在前面有一篇文章中,逍遥一生已经介绍了如何在c#窗体程序中给控件添加右键菜单以及给不同的子菜单添加不同的事件:

c#窗体(winform)程序给控件添加右键菜单及给不同子菜单添加不同事件的方法

在这篇文章中,逍遥一生将给大家介绍一下c#判断右键菜单(ContextMenuStrip)是从哪个控件弹出来的方法。

逍遥一生在用C#做一个网络教室程序的时候,需要在窗体上放
本文来自逍遥一生:http://www.xiaoyaolife.com/
两个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值了,也就是知道了你现在正在操作哪个客户端。

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

  1. 转:C#判断ContextMenuStrip右键菜单的来源(从哪个控件弹出来的)

    转载自:http://hi.baidu.com/cookiemulan/item/82df8ff867dd53cc531c26c7 有时候,为了提高性能和节约资源,我们会为多个控件,指定同一个右键弹出 ...

  2. WPF中ContextMenu(右键菜单)使用Command在部分控件上默认为灰色的处理方法

    WPF中ContextMenu(右键菜单)使用Command在部分控件上默认为灰色的处理方法 原文:WPF中ContextMenu(右键菜单)使用Command在部分控件上默认为灰色的处理方法 问题描 ...

  3. WIN10 右键菜单增加“获取管理员权限”和“恢复管理员”权限的方法

    WIN10 右键菜单增加"获取管理员权限"和"恢复管理员"权限的方法 1. 获取管理员权限 新建一个文件,文件名改为"获取管理员权限.reg" ...

  4. C#/Winform 右键菜单-ContextMenuStrip控件

    效果 用于TreeView的右键菜单,同样也适用于ListBox,Lable等其他控件 1.添加ContextMenuStrip.TreeView 设置一下:ContextMenuStrip的选项.T ...

  5. Winform右键菜单contextMenuStrip控件的使用

    使用方法有2种: 第一种.通过为控件绑定的方式 contextMenuStrip如下图: Form属性种进行绑定 第二种.通过捕获鼠标右键单击事件 取消窗体的ContexMenuStrip属性绑定co ...

  6. elementui树状菜单tree_Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)...

    这篇博客主要介绍树形控件的两个小小的功能: 下拉菜单 输入过滤框 以CSS样式为主,也会涉及到Vue组件和element组件的使用. 对于没有层级的数据,我们可以使用表格或卡片来展示.要展示或建立层级 ...

  7. android侧滑菜单ui,Android:UI控件DrawerLayout、Fragment、SlidingLayout侧滑菜单

    DrawerLayout与Fragment的联用 1.xml代码 xmlns:android="http://schemas.android.com/apk/res/android" ...

  8. 如何在page_load方法判断是服务器端控件引发的page_load方法

    动态获取单击的服务器端控件的id值 private string getPostBackControlName() { Control control=null; string ctrlname = ...

  9. C#遍历ContextMenuStrip右键菜单中包含子菜单的所有菜单并添加事件

    今天写程序的时候,用到了右键菜单控件ContextMenuStrip,真的很方便,写了几个菜单与子菜单项,本来是可以用双击来给每一个菜单添加事件的,不过,这样做似乎非常麻烦,而且对一些子菜单也不容易控 ...

最新文章

  1. Java多线程(三):使用ThreadPoolExecutor创建线程池
  2. hdu 1159 Common Subsequence (dp)
  3. 在 IntelliJ IDEA 中创建基本的 Maven 多模块项目
  4. linux怎么用jconsole_jconsole监控上Linux上的JVM
  5. matlab静态变量怎样分配内存,matlab中的静态变量
  6. ssh项目同时使用mysql跟sqlserver数据库_MSSQL_如何把sqlserver数据迁移到mysql数据库及需要注意事项,在项目开发中,有时由于项目 - phpStudy...
  7. BCVP开发者说第4期:Remember.Core
  8. 浪潮服务器无线网卡驱动,浪潮服务器网卡驱动安装.doc
  9. C#常用42个操作类
  10. python安装及配置
  11. 蚂蚁集团回应 “ IPO 推迟”;iPhone12系列支持北斗系统;LLVM 11.0.0 发布 | 极客头条
  12. Shell:函数返回值接收
  13. 12v电源正负极区分_UPS不间断电源的安装、配电计算及相关故障处理方法!
  14. 【版本控制】分布式的版本控制系统GitHub学习资源汇总
  15. 团队-科学计算器-开发环境搭建过程
  16. 超快激光啁啾放大技术的原理及应用
  17. C语言学习笔记-各项为正整数的一元二次方程的十字交叉法因式分解
  18. Android中MVP框架理解
  19. 名帖332 王献之 草书《鸭头丸帖》
  20. PHP技术开发微信公众平台

热门文章

  1. 在中国,程序员这行能干一辈子吗?
  2. Science新研究颠覆认知,有望一举解决困扰器官移植60余年问题,网友:生物课本得改了...
  3. 人工智能免费公开课一网打尽!14个类别、230门课程,GitHub标星6000+
  4. 睡不着的时候,我会......
  5. 保Cloudera弃Hortonworks,新平台将支持五大云供应商
  6. 营销系统--手动补偿
  7. Java各种数据类型详细介绍及其区别
  8. Oracle Flashback Database and Restore Points 说明
  9. 一起谈.NET技术,ASP.NET MVC3 Service Location
  10. Template Method (C++实现)