c#判断右键菜单(ContextMenuStrip)是从哪个控件弹出来的方法

两个Panel控件,里分分别有一个Label,分别是label1,text是192.168.1.2,和label2,text是192.168.1.3,代表客户端的两台客户机,

这两个label都绑定了一个叫ContextMenuStrip1的控件,菜单有两个,一个是关机,一个是重启。

    




    由于两个图标代表两个不同的客户端,右键菜单有两个子菜单,一个是关机,一个是重启,很明显,右击哪个客户端panel,弹出的菜单及执行的命令都是一样的,那我如何知道点了关机以后到底是让哪个客户端关机呢?本文来自逍遥一生:http://www.xiaoyaolife.com/

双击contextMenuStrip1在它的opening事件中写入下面的代码:

        private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
        {
            string whichcontrol_name= (sender as ContextMenuStrip).SourceControl.Name;
            MessageBox.Show(whichcontrol_name);
        }

运行结果:

右击panel2中的label2



有的朋友说你这有什么用,也得到到那个label中的ip值,
本文来自逍遥一生:http://www.xiaoyaolife.com/
看下面的方法:

1、
        private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
        {
            Panel whichcontrol_name= (Panel)(sender as ContextMenuStrip).SourceControl;
            Label l = (Label)whichcontrol_name.Controls[0];

            MessageBox.Show(l.Text);
        }
或者本文来自逍遥一生:http://www.xiaoyaolife.com/
2、
        private void Form1_Load(object sender, EventArgs e)
        {
            panel1.Name = "192.168.1.2";
            panel2.Name = "192.168.1.3";
        }
        private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
        {
            string whichcontrol_name= (sender as ContextMenuStrip).SourceControl.Name;
            MessageBox.Show(whichcontrol_name);
        }

这次我右击panel1中的label1

结果是:



当然或许客户端的panel是动态添加的,反正在添加的时候给它一个name就可以了。
本文来自逍遥一生:http://www.xiaoyaolife.com/
我们可以定义一个全局变量

        string ip = null;
        private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
        {
            string whichcontrol_name= (sender as ContextMenuStrip).SourceControl.Name;
            ip = whichcontrol_name ;       
        }

这样就在全局范围内可以调用这个ip值了,也就是知道了你现在正在操作哪个客户端。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值