Radiobutton und Doppel-Klick-Event

05/03/2008 - 10:44 von Carsten Sekulla | Report spam
Hallo,
ich bin etwas überrascht, dass der Doppelclick auf Radiobutton nicht
unterstützt wird.

Bei MSDN habe ich gelesen, das mit:
Visual Basic (Deklaration)
Public Event DoubleClick As EventHandler
Visual Basic (Verwendung)
Dim instance As Control
Dim handler As EventHandler
AddHandler instance.DoubleClick, handler

es gehen soll. Dies habe ich bei mir eingebaut, aber ohne Erfolg.

Public Shadows Event DoubleClick As EventHandler

For Each frmCont As Control In Me.Controls
If TypeOf frmCont Is RadioButton Then
Dim rb As RadioButton = DirectCast(frmCont, RadioButton)
Dim handler As New EventHandler(AddressOf SelectApp)
AddHandler rb.DoubleClick, handler
End If
Next

Was ist hier falsch?

Danke im Voraus

Carsten
 

Lesen sie die antworten

#1 Thorsten Doerfler
05/03/2008 - 11:20 | Warnen spam
Carsten Sekulla schrieb:
Hallo,
ich bin etwas überrascht, dass der Doppelclick auf Radiobutton nicht
unterstützt wird.

Bei MSDN habe ich gelesen, das mit:
Visual Basic (Deklaration)
Public Event DoubleClick As EventHandler
Visual Basic (Verwendung)
Dim instance As Control
Dim handler As EventHandler
AddHandler instance.DoubleClick, handler

es gehen soll. Dies habe ich bei mir eingebaut, aber ohne Erfolg.



Da steht aber auch im Kleingedruckten (Remarks):

"By default, the StandardClick style bit is set to false for the
RadioButton control, and the DoubleClick event is not raised. "

Folglich musst Du Dir einen eigenen Button ableiten (ungetestet im
Newsreader geschrieben):

Public Class Form1
Private WithEvents DoubleClickRadioButton1 As DoubleClickRadioButton

Private Sub Form1_Load(ByVal sender As Object, _
ByVal e As System.EventArgs _
) Handles Me.Load
Me.DoubleClickRadioButton1 = _
New WindowsApplication1.DoubleClickRadioButton
Me.DoubleClickRadioButton1.Location = New Point(10, 10)
Me.DoubleClickRadioButton1.Size = New Size(100, 22)
Me.DoubleClickRadioButton1.Visible = True
Me.DoubleClickRadioButton1.Text = "DoubleClickRadioButton1"
Me.Controls.Add(Me.DoubleClickRadioButton1)
End Sub

Private Sub DoubleClickRadioButton1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs _
) Handles DoubleClickRadioButton1.Click

Debug.Print("Single Click")
End Sub

Private Sub DoubleClickRadioButton1_DoubleClick( _
ByVal sender As Object, _
ByVal e As System.EventArgs _
) Handles DoubleClickRadioButton1.DoubleClick

Debug.Print("Double Click")
End Sub
End Class

Public Class DoubleClickRadioButton
Inherits System.Windows.Forms.RadioButton

Public Sub New()
MyBase.New()
Me.SetStyle(ControlStyles.StandardClick Or _
ControlStyles.StandardDoubleClick, True)
End Sub
End Class

Thorsten Dörfler
Microsoft MVP Visual Basic

vb-hellfire visual basic faq | vb-hellfire - einfach anders
http://vb-faq.de/ | http://www.vb-hellfire.de/

Ähnliche fragen