與單擊按鈕時發生事件不同,我只希望在雙擊按鈕時發生事件。令人遺憾的是,雙擊事件不會出現在IDE中的事件列表中。WinForms如何調用按鈕上的雙擊事件?
任何人都知道這個問題的一個很好的解決方案?謝謝!
與單擊按鈕時發生事件不同,我只希望在雙擊按鈕時發生事件。令人遺憾的是,雙擊事件不會出現在IDE中的事件列表中。WinForms如何調用按鈕上的雙擊事件?
任何人都知道這個問題的一個很好的解決方案?謝謝!
沒有標準按鈕不會對雙擊產生反應。請參閱Button.DoubleClick事件的文檔。它不會對雙擊產生反應,因爲在Windows按鈕中總是對點擊作出反應,而不是雙擊。
你討厭你的用戶嗎?因爲您將創建一個與系統中任何其他按鈕行爲不同的按鈕,並且某些用戶永遠不會知道這一點。
這就是說,你必須創建一個從Button
衍生事件給這個獨立的控制(因爲SetStyle是一個受保護的方法)
public class DoubleClickButton : Button
{
public DoubleClickButton()
{
SetStyle(ControlStyles.StandardClick | ControlStyles.StandardDoubleClick, true);
}
}
那麼你必須在你的代碼hanlder手動添加DoubleClick
事件因爲它仍然不會出現在IDE中:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
doubleClickButton1.DoubleClick += new EventHandler(doubleClickButton1_DoubleClick);
}
void doubleClickButton1_DoubleClick(object sender, EventArgs e) {
}
}
雙擊只是在彼此的時間t內的兩個常規點擊事件。
以下是一個假設噸一些僞代碼=0.5秒
button.on('click' , function(event) {
if (timer is off or more than 0.5 milliseconds)
restart timer
if (timer is between 0 and 0.5 milliseconds)
execute double click handler
})
不要這樣做!您將忽略用戶的雙擊速度設置。如果您按照從按鈕導出的其他答案並創建可雙擊的按鈕,Windows會告訴您它是否是雙擊。 –
它與雙擊單擊無關 – Diego
我用於我的物體上添加MouseDoubleClick事件等:
this.pictureBox.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseDoubleClick);
請編輯您的答案以包含一些解釋。僅有代碼的答案對未來SO讀者的教育很少。您的回答是在低質量的審覈隊列中。 – mickmackusa
http://msdn.microsoft。 com/en-US/library/system.windows.forms.button.doubleclick(v = vs.80).aspx – JWiley