Ich möchte die DoubleClick- oder MouseDoubleClick-Ereignisse von einem standardmäßigen winforms-Optionsfeld abfangen können, aber sie scheinen ausgeblendet zu sein und funktionieren nicht. Im Moment hat ich Code wie folgt:Wie erhalte ich ein DoubleClick-Ereignis in einem .NET-Optionsfeld?
public class RadioButtonWithDoubleClick : RadioButton
{
public RadioButtonWithDoubleClick()
: base()
{
this.SetStyle(ControlStyles.StandardClick | ControlStyles.StandardDoubleClick, true);
}
[EditorBrowsable(EditorBrowsableState.Always), Browsable(true)]
public new event MouseEventHandler MouseDoubleClick;
protected override void OnMouseDoubleClick(MouseEventArgs e)
{
MouseEventHandler temp = MouseDoubleClick;
if(temp != null) {
temp(this, e);
}
}
}
Gibt es einen einfachen und sauberen Weg, es zu tun?
Edit: Für Hintergrund, ich bin einverstanden mit Raymond Chen Post here, dass die Fähigkeit, klicken Sie auf ein Optionsfeld zu verdoppeln (wenn diejenigen, die nur Steuerelemente im Dialog sind), um den Dialog macht nur ein kleines bisschen leichter zu bedienen Leute, die davon wissen.
In Vista mit Task-Dialoge (siehe this Microsoft guideline page oder this MSDN page specifically about the Task Dialog API) wäre die offensichtliche Lösung, aber wir haben nicht den Luxus, dass.
ich diese eine Annahme, denn obwohl ich denke, dass meine eigene Lösung für meinen Fall einfacher ist, wo ich die gleiche Kontrolle viele Male verwenden werde, wenn jemand nur ein oder zwei wollte, dann ist deins viel einfacher. – Ant
Dies scheint nicht auf .NET 3.5 zu arbeiten, da die Klicks == 2 nie passiert. – Wernight
Dies passiert auch nicht in .NET 4.0, also wechsle ich die akzeptierte Antwort auf die Reflektionsbasierte über MSW. – Ant