當我第一次按下控制鍵(左一個),然後單擊鼠標左鍵,爲什麼下面的代碼被執行。我正在修改現有代碼,並且下面的代碼已經存在。我想以前沒有人嘗試過,按住Ctrl鍵,它只能用於鼠標左鍵單擊,並且一直適用於這種情況。但是我想要在按下控制鍵的同時按下鼠標左鍵來執行不同的代碼。檢測Ctrl +向左(鼠標左鍵)在MouseDown事件處理程序
private void treeList1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
TreeList tree = sender as TreeList;
if (e.Button == MouseButtons.Right && ModifierKeys == Keys.None && tree.State == TreeListState.Regular)
{
//the code that is here gets executed
MessageBox.Show("I am here");
}
}
我非常感謝任何提示或幫助。
P.S.我想補充一點,在上面的例子中,當我檢查e.button的值時,它顯示出等於Right,儘管我按下了鼠標左鍵和Ctrl鍵。這對我來說是個謎。
親愛的StackOverflow研究員:我發現了這個問題,因爲我使用的是虛擬機上的MAC,我不得不禁用我的虛擬機的偏好某些鍵映射到現在我原來的代碼工作。感謝你的幫助。
ModifierKeys在調試時包含什麼? 顯然它不包含Control。 – nzic 2013-02-18 23:26:01
這是.net 4.0嗎?這可能幫助:http://stackoverflow.com/questions/4705428/test-if-the-ctrl-key-is-down-using-c-sharp – 2013-02-18 23:36:28
的事件會得到預期解僱,你肯定的是' msgbox'代碼被執行? – 2013-02-18 23:53:39