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)
