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)
时间: 2024-11-08 17:26:31