contextmenustrip用法 的效果是怎么实现的

问题:使用Net控件可以实现类似Excel筛选菜单的效果吗?
感觉Excel的筛选菜单和ContextMenuStrip很像,但其中除了菜单项还可以加其他控件。
想请教下是如何实现的,使用.net标准控件能否实现类似的功能?解决方案1:
dev可以实现
解决方案2:
根据表格内容动态向菜单中加入CheckBox
解决方案3:
不用标准控件,用WPF&&的ComboboxItem,修改它的item模板也可以。
以上介绍了“使用Net控件可以实现类似Excel筛选菜单的效果吗?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:/itwd/1219515.html
上一篇: 下一篇:&&&您需要以后才能回答,未注册用户请先。c# winform中contextmenustrip右键菜单中的选项功能的实现
[问题点数:40分,结帖人luoyanzhi911027]
c# winform中contextmenustrip右键菜单中的选项功能的实现
[问题点数:40分,结帖人luoyanzhi911027]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。您所在的位置: &
分享如何用C# Button实现下拉菜单
分享如何用C# Button实现下拉菜单
C# Button实现下拉菜单为实现这个功能, 花费的时间太长了, 但是总结了很多的经验,拿出来和大家一起分享,希望大家能够喜欢。
本文为你讲解了C# Button下拉菜单实现的思路,步骤及代码!笔者讲述的很清楚,很有条理,实用性很强的。主要的思路还是在于要把ContextMenuStrip控件实例与按钮关联,并取消按钮的右击事件。
C# Button实现下拉菜单为实现这个功能, 花费的时间太长了, 觉得本人真够笨. 回过头来看, 其实很简单的东西!
在项目中,要用到按钮实现下拉菜单的功能,而且是在MDI窗体中。当菜单的显示范畴超出MDI窗体的工做区时,就要换另一显示方式,不至于显示混乱。如图:
498)this.width=498;' onmousewheel = 'javascript:return big(this)' alt="实现C# Button下拉菜单" src="/files/uploadimg/9090.JPG">实现C# Button下拉菜单
498)this.width=498;' onmousewheel = 'javascript:return big(this)' alt="实现C# Button下拉菜单" src="/files/uploadimg/9091.JPG">实现C# Button下拉菜单
(发觉一问题,如果把Form1拉到像Form3的大小,还会出现图一的情况。客户没这么邪吧)
C# Button下拉菜单实现思路:
1、要把ContextMenuStrip控件实例与按钮关联
2、取得MDI工做区的大小
3、取消按钮的右击事件(因为与ContextMenuStrip相关系的控件右键都会响应且显示)
4、鼠标单击时设置菜单显示位置
C# Button下拉菜单实现步骤:
1、创建用户控件,且用户控件承继自Button类
2、定义ContextMenuStrip对象
3、定义显示ContextMenuStrip对象立标point
4、重写按钮单击事件和ContextMenuStrip属性(设置与之关联的ContextMenuStrip实例用到),还有重写鼠标右击事件,使其不响应任何操做
C# Button下拉菜单代码:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&public&partial&class&DropButton&:&Button &&&&&&{ &&&&&&&&&&private&ContextMenuStrip&contextMenuS &&&&&&&&&&private&Point&&&&&&&&&&&&&&&&private&int&x&=&0;&&&&&&&&&&&&&&&private&int&y&=&0;&&&&&&&&&&&&&&&private&int&workSize_x;&&&&&&&&&&private&int&workSize_y;&&&&&&&&&&public&DropButton() &&&&&&&&&{ &&&&&&&&&&&&&&InitializeComponent(); &&&&&&&&&&&&&x&=&this.Size.Width&; &&&&&&&&&&&&&&y&=&0; &&&&&&&&&&} &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&public&int&WorkSizeX &&&&&&&&&&{ &&&&&&&&&&&&&&get&{&return&workSize_x;&} &&&&&&&&&&&&&&set&{&workSize_x&=&&} &&&&&&&&&&} &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&public&int&WorkSizeY &&&&&&&&&&{ &&&&&&&&&&&&&&get&{&return&workSize_y;&} &&&&&&&&&&&&&&set&{&workSize_y&=&value&-&55;&} &&&&&&&&&&} && &
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&public&override&ContextMenuStrip&ContextMenuStrip &&&&&&&&&&{ &&&&&&&&&&&&&&get&{&return&contextMenuS&} &&&&&&&&&&&&&&set& &&&&&&&&&&&&&&{ &&&&&&&&&&&&&&&&&&if&(contextMenuStrip&!=&null) &&&&&&&&&&&&&&&&&&{ &&&&&&&&&&&&&&&&&&&&&&contextMenuStrip&=& &&&&&&&&&&&&&&&&&&} &&&&&&&&&&&&&&} &&&&&&&&&} &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&protected&override&void&OnClick(EventArgs&e) &&&&&&&&&&{ &&&&&&&&&&&&&&base.OnClick(e); &&&&&&&&&&&&&&&&&&&&&&&&&&&&int&_x&=&this.Parent.Location.X&+&this.Location.X&+this.Size.Width&+&contextMenuStrip.Size.W &&&&&&&&&&&&&&int&_y&=&this.Parent.Location.Y&+&this.Location.Y&&+&contextMenuStrip.Size.Height&; && &
if&&&&&&&&&&&&&(_x&<&WorkSizeX&-&8) &&&&&&&&&&&&&&{ &&&&&&&&&&&&&&&&&&x&=&this.Size.W &&&&&&&&&&&&&&} &&&&&&&&&&&&&&else&&&&&&&&&&&&&&{ &&&&&&&&&&&&&&&&&&x&=&0&-&contextMenuStrip.Size.W &&&&&&&&&&&&&&} && &
if&&&&&&&&&&&&&&(_y&<&WorkSizeY) &&&&&&&&&&&&&&{ &&&&&&&&&&&&&&&&&&y&=&0; &&&&&&&&&&&&&&} &&&&&&&&&&&&&&else&&&&&&&&&&&&&&{ &&&&&&&&&&&&&&&&&&y&=&0&-&contextMenuStrip.Size.Height&+&this.Size.H &&&&&&&&&&&&&&} && &
&point&=&&&&&&&&&&&&new&Point(x,&y); &&&&&&&&&&&&&&contextMenuStrip.Show(this,&point); &&&&&&&&&&} &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&protected&override&void&OnMouseDown(MouseEventArgs&mevent) &&&&&&&&&{ &&&&&&&&&&&&&base.OnMouseDown(mevent); &&&&&&&&&&&&&&if&(mevent.Button.ToString()&!=&"Right") &&&&&&&&&&&&&&{ &&&&&&&&&&&&&} &&&&&&&&&&} &&&&&&}&以上讲述了实现C# Button下拉菜单的思路、步骤及代码,希望能给大家带来帮助。
【编辑推荐】
【责任编辑: TEL:(010)】
关于的更多文章
AngularJS是很多Web开发人员在打造单页面应用程序时的首选创建方
作为移动开发者,WOT2016移动互联网技术峰会,绝对有你不得不来的理由。
讲师: 4人学习过讲师: 7人学习过讲师: 66人学习过
美国旧金山时间3月31日,在红木城Oracle公司总部,Ora
从2006年12月份Sun发布Java 6后,经过五年多的不懈努
借助Google的三大论文,Hadoop打开了低成本海量数据处
本书从基础知识入手,详细讨论了Oracle数据库的创建、OEM及iSQL*Plus等工具的使用、Oracle的字符集知识、用户的创建与管理、表空
51CTO旗下网站C#怎么做菜单效果 - C#当前位置:& &&&C#怎么做菜单效果C#怎么做菜单效果&&网友分享于:&&浏览:7次C#如何做菜单效果就是右键点桌面,出现的那个菜单,有现成的控件吗?是不是应该使用menustrip做,改一些参数?------解决方案--------------------
如果你是winform程序的话,在你的窗体里添加contextMenuStrip控件,在窗体里的contextMenuStrip属性里选择你添加的contextMenuStrip控件就关联上了。在contextMenuStrip的items里添加你的菜单选项
------解决方案--------------------1楼说的很对,如果是C#Winform编程的话,是有现成的控件contextMenuStrip的,你添加进去,设置一下就OK了!
------解决方案--------------------桌面右键菜单有什么特殊的吗,winform程序中contextMenuStrip就是,图标可以自己指定
------解决方案--------------------using Susing System.Collections.GponentMusing System.Dusing System.Dusing System.Lusing System.Tusing System.Windows.Fnamespace WindowsFormsApplication1{
public partial class Form1 : Form
ContextMenuStrip cms=new ContextMenuStrip();
public Form1()
InitializeComponent();
private void Form1_MouseDown(object sender, MouseEventArgs e)
if (e.Button == MouseButtons.Right)
if (cms.Items.Count & 0)
cms.Items.Clear();
//带图表项
cms.Items.Add(&tubiao&, bm, new EventHandler(tubiao_Handler));
cms.Items.Add(&mouseright1&);
cms.Items.Add(&-&);
cms.Items.Add(&mouseright2&);
cms.Items.Add(&-&);
cms.Items.Add(&mouseright3&);
//处理显示位置
int w = Width - e.X;
if (w & cms.Width)
cms.Show(this, e.X - cms.Width, e.Y);
cms.Show(this, e.X, e.Y);
public void tubiao_Handler(object sender, EventArgs e)
MessageBox.Show(&this is tubiao&, &tubiao&, MessageBoxButtons.YesNo);
private void Form1_Load(object sender, EventArgs e)
cms = new ContextMenuStrip();
bm = new Bitmap(&Resources/Icon1.ico&);//图标存放位置
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有

我要回帖

更多关于 contextmenustrip隐藏 的文章

 

随机推荐