2014-03-02 78 views
0

當您右鍵單擊窗口時,我想知道如何顯示上下文菜單。如何在C#中創建一個右鍵單擊事件處理程序#

這裏是我到目前爲止的代碼:

private void ShowContextMenu_RightClick(object sender, EventArgs e) 
{ 
    toolStripMenuItem5.Visible = true; 
} 
private void toolStripMenuItem5_Click(object sender, EventArgs e) 
{ 
    MessageBox.Show("Hi there this is my 3rd app which is *animation*.", "Programmed by D & K"); 
} 
+0

它是自動的,不需要代碼。將工具箱中的ContextMenuStrip拖放到窗體上並添加菜單項。設置窗體的ContextMenuStrip屬性。 Winforms的入門書籍或體面的教程可以節省您(和我們)很多時間。 –

+0

@HansPassant沒有...只是拖放不附加菜單與窗體...它只是在窗體中創建菜單對象..它應該如何知道你要附加上下文菜單?所以如果你想用form.cs文件的形式附加它,你必須附加創建的上下文菜單與表單,檢查下面我清楚地回答.. –

+0

設計器已經自動生成你手寫的代碼。它不會犯同樣的錯誤,它確保CMS在窗戶關閉時自動處理。這絕對是那種最好不寫的代碼,當它可以完成工作時也總是喜歡設計師。 –

回答

2

形式CS文件,你可以將你的上下文菜單這樣的..

public Form1() 
    { 
     InitializeComponent(); 

     //Create right click menu.. 
     ContextMenuStrip s = new ContextMenuStrip(); 

     // add one right click menu item named as hello   
     ToolStripMenuItem hello = new ToolStripMenuItem(); 
     hello.Text = "Hello"; 

     // add the clickevent of hello item 
     hello.Click += hello_Click; 

     // add the item in right click menu 
     s.Items.Add(hello); 

     // attach the right click menu with form 
     this.ContextMenuStrip = s; 
    } 

    void hello_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show("Hello Clicked"); 
    } 
+0

Thx很多,它的工作原理。爲什麼只有無效而不是私人無效或公共無效。 –

+0

其中???爲** hello_click **方法??在這裏你可以嘗試根據需要..我剛剛創建了默認即它.. –

+0

噢再次thx thx。 :) –

4

AFAIK存在的WinForms沒有直接右擊事件。您可以使用mousedown事件來實現此目的

private void toolStripButton1_MouseDown(object sender, MouseEventArgs e) 
     { 
      if (e.Button == MouseButtons.Right) 
      { 
       MessageBox.Show("Hi there this is my 3rd app which is *animation*.", "Programed by D & K"); 
      } 
     } 
1

您應該使用MouseDown。然後你可以得到點擊按鈕e.Button和與e.Xe.Y的座標。

private void Form1_MouseDown(object sender, MouseEventArgs e) 
{ 
    MessageBox.Show(e.Button.ToString() + " " + e.X + " " + e.Y); 
} 
0

添加的ContextMenuStrip控件到窗體(注意,它不會顯示在表格上,但在改爲顯示設計師的底部)。

在窗體的ContextMenuStrip屬性中,選擇剛剛添加到窗體的ContextMenuStrip控件的名稱。

就是這樣。 HansPassant在對這個問題的評論中陳述了這一點,但我認爲它被忽略了。

ContextMenuStrip屬性是許多UI控件的屬性,您將使用相同的技術。

相關問題