从品牌网站建设到网络营销策划,从策略到执行的一站式服务
对于这个控件,我们常用的方式是是直接把他从属控件的属性ContextMenuStrip设置为contextMenuStrip1可以保证右键菜单位置的正确性。
创新互联建站是少有的成都网站建设、网站建设、营销型企业网站、微信平台小程序开发、手机APP,开发、制作、设计、卖链接、推广优化一站式服务网络公司,于2013年成立,坚持透明化,价格低,无套路经营理念。让网页惊喜每一位访客多年来深受用户好评
然而有时候我们为了在一个容器特定的位置出现右键菜单,就需要设置ContextMenuStrip的位置了;
S1.声明一个右键菜单控件;
S2.添加右键菜单的内容;
S3.设定使右键菜单跟随鼠标点击位置出现。关键的是其中的位置坐标转换;oView.PointToScreen(e.Location);oView这个对象要选正确,就是要出现右键的容器,用他的坐标转化方法来得到右键出现的位置;
这样可以保证右键菜单出现位置正确了。
附一点代码:
ContextMenuStrip cms = new ContextMenuStrip(); cms.Items.Add("属性设置"); //坐标转化保证右键菜单出现在点击的位置 Point p = oView.PointToScreen(e.Location); cms.Show(p); cms.Items[0].Tag = oView; cms.Items[0].Click += ContextMenuStrip_Click;
另外在做这个开发时,我还遇到了另一个问题,我的右键是设置一个对象的属性,然而在这个Click事件中获取不到这个对象怎么办?我试着用Tag属性将需要的值传递到单击事件中进行处理,结果还可以。
//右键事件 private void ContextMenuStrip_Click(object sender, EventArgs e) { XX view = ((ToolStripDropDownItem)(sender)).Tag as XX; }
还没有完全吃透,仅供参考,若有更好方法望留言告知;谢谢
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图