2013-07-24 87 views
0

我試圖運行不同的代碼,當用戶按住Ctrl鍵並點擊NotifyIcon。當你按Ctrl +單擊WinForm中的按鈕時運行?

我的代碼不起作用,但我覺得它清楚地解釋了我試圖做的事情。這是在鼠標點擊事件下。

 Private Sub NotifyIcon_MouseClick(ByVal sender As Object, ByVal e As MouseEventArgs) Handles NotifyIcon.MouseClick 
     If (e.Modifiers = Keys.Control) Then 
      MsgBox("CTRL was pressed !") 
     Else 
      MsgBox("CTRL was not pressed !") 
     End If 
     End Sub 
+0

它說沒有按下控制鍵,或做你沒有得到任何東西? –

+4

首先'e.Modifiers == Keys.Control'哦等等,它的VB,對不起,我先看到了c#標籤 – chancea

+1

@Landmine看看這個,http://stackoverflow.com/questions/3701830/how-to -tell-if-shift-is-being-in-a-mousedown-event 只需要用控制改變Shift – ToastyMallows

回答

3

不太熟悉VB,但你也把它標記爲C#,對於你來說切換應該是微不足道的。

private void Form1_MouseClick(object sender, MouseEventArgs e) { 
    if (Control.ModifierKeys == Keys.Control) { 
     Console.WriteLine("Ctrl+Click"); 
    } 
} 
+1

完美,謝謝。我將它標記爲C#,因爲正如你所說的那樣,將代碼轉換爲代碼就很簡單。謝謝,這很好。 – Landmine

+0

沒問題,一定要把它標記爲可接受的答案。 – ToastyMallows

+0

完成並完成。再次感謝你。 – Landmine

5

泛型方法不依賴於MouseEventArgs:

  If My.Computer.Keyboard.CtrlKeyDown Then 
       ... 
      Else 
       ... 
      End If 

您還可以檢查Alt鍵,按住Shift鍵....