Me gustaría poder ver los eventos de DoubleClick o MouseDoubleClick desde un botón de opción estándar de winforms, pero parecen estar ocultos y no funcionan. Por el momento tengo un código como este:¿Cómo obtengo un evento de DoubleClick en un botón de radio .NET?
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);
}
}
}
¿Hay una manera más simple y más clara de hacerlo?
Editar: Para el fondo, estoy de acuerdo con el poste de Raymond Chen here que la capacidad de hacer doble clic en un botón de opción (si esas son las sólo controles del cuadro de diálogo) hace que el diálogo sólo un poquito más fácil de usar para personas que lo saben
En Vista usando cuadros de diálogo de tareas (ver this Microsoft guideline page o this MSDN page specifically about the Task Dialog API) sería la solución obvia, pero no tenemos el lujo de eso.
que estoy aceptando éste, porque aunque creo que mi propia solución es más simple para mi caso, donde voy a usar el mismo control muchas veces, si alguien solo quería uno o dos, el tuyo es mucho más simple. – Ant
Esto no parece estar funcionando en .NET 3.5 ya que los clics == 2 nunca sucede. – Wernight
Esto tampoco ocurre en .NET 4.0, así que estoy cambiando la respuesta aceptada a la basada en la reflexión por MSW. – Ant