C#學習筆記-ContextMenuStrip


ContextMenuStrip是就是所說的右鍵菜單,在VS里可以直接新建,挺方便。但是跟着師父看了很多代碼,發現了好多時候都需要自己寫這部分代碼。這個部分目前為止我了解的還不是很多,更細致的就只有等后面再深入了解到了再記了。

 

現在是將contextmenustrip綁定到label上面去,新建了一個form窗口,里面分別有三個label,label1和label2是通過vs自帶的直接綁定contextmenustrip,label3是通過代碼實現(其實和vs給的代碼一樣的,只是什么東西自己專門打出來和只看是完全不一樣的感受的,畢竟還是新手,穩扎穩打學習總會有好處的)。

 

先新建一個contextmunestrip1,里面的內容是自己直接輸入就好了,也在它的屬性items里:點擊省略號就可以看見:

 

label1是1號,他的命名直接就是“我是1號選手”,label2,label3同理,然后label1和label2通過這個和contextmenustrip1相關聯了。

 

 給contextmenustrip的添加一個opening事件,這樣可以區別開鼠標點擊的是label1還是label2;

1 private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
2         {
3             string whichone = (sender as ContextMenuStrip).SourceControl.Name;
4             MessageBox.Show(whichone+ "😀!");
5         }

 

給contextmenustrip里面的“大家好”選項添加事件,直接用click就可以了

1 private void 大家好ToolStripMenuItem_Click(object sender, EventArgs e)
2         {           
3             MessageBox.Show("大家好!" );
4         }
5         private void 謝謝大家ToolStripMenuItem_Click(object sender, EventArgs e)
6         {
7             MessageBox.Show("謝謝大家!");
8         }

 

這樣就實現了點擊label1時彈出“我是1號選手”的對話框,同理label2:

 

 

現在就是label3的部分了,用代碼實現上訴的功能:

 1         //先新建一個ContextMenuStrip
 2         private ContextMenuStrip onlyfornumber3;
 3 
 4         public Form1()
 5         {
 6             InitializeComponent();
 7 
 8             onlyfornumber3 = new ContextMenuStrip();
 9             //右鍵菜單加入一個hello選項
10             onlyfornumber3.Items.Add("hello!");
11             //點擊hello選項時發生onlyfornumber3_Click事件
12             onlyfornumber3.Items[0].Click += onlyfornumber3_Click;
13             //激活ContextMenuStrip的時候發生onlyfornumber3_Click2事件
14             onlyfornumber3.Opening += onlyfornumber3_Click2;
15 
16             //將ContextMenuStrip(也就是onlyfornumber3)和label3綁定在一起
17             label3.ContextMenuStrip = onlyfornumber3; 
18         }
19 
20         private void onlyfornumber3_Click(object sender, EventArgs e)
21         {
22             MessageBox.Show("hello,我是三號選手哦😀!");
23         }
24 
25         private void onlyfornumber3_Click2(object sender, CancelEventArgs e)
26         {
27             MessageBox.Show("我是三號選手😀!");
28         }

(2016-08-25)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM