Tôi muốn có thể nắm bắt các sự kiện DoubleClick hoặc MouseDoubleClick từ nút radio winforms tiêu chuẩn, nhưng chúng dường như bị ẩn và không hoạt động. Hiện tại tôi có mã như sau:Làm cách nào để nhận sự kiện DoubleClick trong nút 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);
}
}
}
Có cách nào đơn giản và rõ ràng hơn để làm điều đó?
Chỉnh sửa: Đối với nền, tôi đồng ý với bài đăng của Raymond Chen here rằng khả năng nhấp đúp vào nút radio (nếu đó là chỉ điều khiển trên hộp thoại) làm cho hộp thoại dễ sử dụng hơn một chút những người biết về nó.
Trong Vista sử dụng Hộp thoại nhiệm vụ (xem this Microsoft guideline page hoặc this MSDN page specifically about the Task Dialog API) sẽ là giải pháp hiển nhiên, nhưng chúng tôi không có sự sang trọng của điều đó.
Tôi chấp nhận thế này, bởi vì mặc dù tôi nghĩ rằng giải pháp của riêng tôi đơn giản hơn cho trường hợp của tôi, nơi mà tôi sẽ sử dụng cùng một điều khiển nhiều lần, nếu ai đó chỉ muốn một hoặc hai lần thì bạn sẽ đơn giản hơn nhiều. – Ant
Điều này dường như không hoạt động trên .NET 3.5 vì Clicks == 2 không bao giờ xảy ra. – Wernight
Điều này cũng không xảy ra trong .NET 4.0, vì vậy tôi đang chuyển câu trả lời được chấp nhận cho câu trả lời được chấp nhận bởi MSW. – Ant