请问c# 的菜单按钮怎么实现(winform) 例如在窗体里放置一个按钮 当点击按钮(button)后弹出一个菜单(menu)然后通过选择菜单上对应的项完成不同的事件这样的功能如何实现请路过的朋友指点一下 分不够再加小弟谢过了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 工具栏的按钮风格调整为 dropdownmenu 在指定一个contextMenu就行了 (button)后弹出一个菜单(menu)你给button添加一个menu不行啊? 使用右键的弹出菜单即可按Button,启动这个菜单 contextMenuStrip1.Show(Control.MousePosition); 在click事件中,当单击按钮的时候,弹出菜单 hbxtlhx(平民百姓-自已动手,丰衣足食)contextMenuStrip1.Show(Control.MousePosition);出现如下提示:重载"show"方法未获取“1”参数 你如果是VS2005,应该使用ContextMenuStrip,而不是ContextMenu. hbxtlhx(平民百姓-自已动手,丰衣足食)我用的是vs2003 理论上应该没问题啊 在vs2003里 this.contextMenu1.Show(Control.MousePosition); 行不通 出现如下提示:重载"show"方法未获取“1”参数 this.contextMenu1(this, this.MousePosition); *****************************************************************************欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html 谢谢楼上兄弟们this.contextMenu1(this, this.MousePosition);不行 tryprivate void button1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e){ if(e.Button == MouseButtons.Left) { this.contextMenu1.Show(button1,new Point(e.X,e.Y)); }} http://www.abab123.com/bbs/down.asp?html=561062在这里你可以找到你想要的答案 lxcnn(过客) 的方法正确谢谢了如果在按钮(button1)上加一个向下小三角 当但击这个三角时就会弹出菜单(contextMenu1)这样的功能如何实现 解决了这个问题马上结帖 提出下一个问题 如何实现动态菜单(就是让菜单动态显示数据库里的纪录) 如果没有好的方法,你可以变通一下自己做个控件:一个button,右边紧挨者再加一个有个三角形标记的小按钮,小按钮单击时弹出菜单,主按钮单击时做另外的事情 如果是2003可以按如下操作:private void button1_Click(object sender, EventArgs e){ ContextMenu cm = new ContextMenu(); cm.MenuItems.Add("aa", new EventHandler(this.menu_Click)); cm.MenuItems.Add("bb", new EventHandler(this.menu_Click)); cm.Show(this, this.PointToClient(Control.MousePosition));}private void menu_Click(object sender, EventArgs e){ MenuItem item = (MenuItem)sender; Console.WriteLine(item.Text);} 就是让菜单动态显示数据库里的纪录----------------------这个也好说,从数据库中取出数据后使用Add方法一个个的添加菜单项就是了:private void button1_Click(object sender, EventArgs e){ ContextMenu cm = new ContextMenu(); DataTable dataTable = getTable(); for (int i = 0; i < dataTable.Rows.Count; i++) { cm.MenuItems.Add(dataTable.Rows[i]["Caption"].ToString(), new EventHandler(this.menu_Click)); } cm.Show(this, this.PointToClient(Control.MousePosition));}private void menu_Click(object sender, EventArgs e){ MenuItem item = (MenuItem)sender; Console.WriteLine(item.Text);} contextMenuStrip1.Show(btnSearch, btnSearch.Width, 0); 恩 谢谢 hbxtlhx(平民百姓-自已动手,丰衣足食) 请问如果在按钮(button1)上加一个向下小三角 当但击这个三角时就会弹出菜单(contextMenu1)这样的功能如何实现 能否给一些代码提示一下谢谢!!! 上加一个向下小三角--------------------------是什么意思,是自己画出的一个小三角,还是放上了一个小控件呢?如果是画出的一个小三角,其实还是点击的Button,还是在Button.Click事件.如果是向Button加了一个小的控件来显示这个小的三角以至于不会因为点击小三角而使Button被点击,那么就要在这个小控件上加Click事件了.你可以在Button.Controls中添加一个Visible=true的小的控件,这个小控件显示三角并处理它的Click以弹出菜单. hbxtlhx(平民百姓-自已动手,丰衣足食) :恩,是想在按钮上再放一个小控件,小按钮单击时弹出菜单,主按钮单击时做另外的事情这样的功能如何实现 能在具体一点吗?很感谢你百忙之中的回帖也感谢所有路过的人 你可以这样向一个Button中添加一个小的Button:Button btn = new Button();btn.Size = new Size(18, 18);btn.Location = new Point(this.button1.Width - btn.Width, this.button1.Height - btn.Height);btn.Text = "6";btn.FlatStyle = FlatStyle.Popup;btn.Font = new Font("Marlett", 9);btn.Click += new EventHandler(btn_Click);this.button1.Controls.Add(btn);btn.Visible = true;void btn_Click(object sender, EventArgs e){ ContextMenu cm = new ContextMenu(); cm.MenuItems.Add("aa", new EventHandler(this.menu_Click)); cm.MenuItems.Add("bb", new EventHandler(this.menu_Click)); cm.Show(this, this.PointToClient(Control.MousePosition));}private void menu_Click(object sender, EventArgs e){ MenuItem item = (MenuItem)sender; Console.WriteLine(item.Text);} hbxtlhx(平民百姓-自已动手,丰衣足食)谢谢你提供的方法但是转到视图设计器里的时候提示:加载文档时出错,然后再重新尝试加载该文档,错误信息如下所示:设计器无法处理84行中的代码:btn.Location = new Point(this.button1.Width - btn.Width, this.button1.Height - btn.Height);方法"InitializeComponent"内的代码设计器生成,不应手动修改。请删除任何更改,然后尝试重新打开设计器。 还有一个问题 就是当点击按钮(btn)和小三角的时候都会弹出相同的菜单(contextMenu1)我想让单击按钮的时候完成一个事件 单击小三角的时候完成另一个事件 如何区分我每次点击的是按钮还是小三角呢请路人指点一下 这个问题头痛好几天了谢谢 我想让单击按钮的时候完成一个事件单击小三角的时候完成另一个事件 如何区分我每次点击的是按钮还是小三角呢————————————————————————————————————你可以做个控件:一个button,右边紧挨者再加一个有个三角形标记的小按钮,小按钮单击时弹出菜单,主按钮单击时做另外的事情说过N次了 private void button1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e){if(e.Button == MouseButtons.Left){this.contextMenu1.Show(Control.MousePosition);}} 直接拖contextMenuStrip1到界面,然後設置菜單Item,最後綁定到按鈕(屬性:contextMenuStrip)右鍵按鈕就會彈出contextMenuStrip1 求一正则 怎样得到某一条符合要求记录的位置? 怎样控制窗体的最小尺寸? {"Update 无法找到 TableMapping['Table'] 或 DataTable“Table”错误!!!!!!! c#的一个逻辑性问题(求解决方案) 有个问题想请教大家,关于IIS的安装? RDLC报表如何自定义代码,把表中的数值型数据,转换为大写的货币,用C#语言 初学C#,问个问题。 如何取得、设置水晶报表的单击等事件? 关于局域网内IP地址问题,请大家进来看一下~~ 50分求解datagridview显示日期问题。 两个时间控件冲突,改用多线程怎么写?
重载"show"方法未获取“1”参数
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
{
if(e.Button == MouseButtons.Left)
{
this.contextMenu1.Show(button1,new Point(e.X,e.Y));
}
}
在这里你可以找到你想要的答案
这样的功能如何实现 解决了这个问题马上结帖 提出下一个问题
如何实现动态菜单(就是让菜单动态显示数据库里的纪录)
private void button1_Click(object sender, EventArgs e)
{
ContextMenu cm = new ContextMenu();
cm.MenuItems.Add("aa", new EventHandler(this.menu_Click));
cm.MenuItems.Add("bb", new EventHandler(this.menu_Click));
cm.Show(this, this.PointToClient(Control.MousePosition));
}
private void menu_Click(object sender, EventArgs e)
{
MenuItem item = (MenuItem)sender;
Console.WriteLine(item.Text);
}
----------------------
这个也好说,从数据库中取出数据后使用Add方法一个个的添加菜单项就是了:
private void button1_Click(object sender, EventArgs e)
{
ContextMenu cm = new ContextMenu();
DataTable dataTable = getTable();
for (int i = 0; i < dataTable.Rows.Count; i++)
{
cm.MenuItems.Add(dataTable.Rows[i]["Caption"].ToString(), new EventHandler(this.menu_Click));
}
cm.Show(this, this.PointToClient(Control.MousePosition));
}
private void menu_Click(object sender, EventArgs e)
{
MenuItem item = (MenuItem)sender;
Console.WriteLine(item.Text);
}
这样的功能如何实现 能否给一些代码提示一下谢谢!!!
--------------------------
是什么意思,是自己画出的一个小三角,还是放上了一个小控件呢?如果是画出的一个小三角,其实还是点击的Button,还是在Button.Click事件.
如果是向Button加了一个小的控件来显示这个小的三角以至于不会因为点击小三角而使Button被点击,那么就要在这个小控件上加Click事件了.你可以在Button.Controls中添加一个Visible=true的小的控件,这个小控件显示三角并处理它的Click以弹出菜单.
btn.Size = new Size(18, 18);
btn.Location = new Point(this.button1.Width - btn.Width, this.button1.Height - btn.Height);
btn.Text = "6";
btn.FlatStyle = FlatStyle.Popup;
btn.Font = new Font("Marlett", 9);
btn.Click += new EventHandler(btn_Click);
this.button1.Controls.Add(btn);
btn.Visible = true;void btn_Click(object sender, EventArgs e)
{
ContextMenu cm = new ContextMenu();
cm.MenuItems.Add("aa", new EventHandler(this.menu_Click));
cm.MenuItems.Add("bb", new EventHandler(this.menu_Click));
cm.Show(this, this.PointToClient(Control.MousePosition));
}
private void menu_Click(object sender, EventArgs e)
{
MenuItem item = (MenuItem)sender;
Console.WriteLine(item.Text);
}
加载文档时出错,然后再重新尝试加载该文档,错误信息如下所示:
设计器无法处理84行中的代码:
btn.Location = new Point(this.button1.Width - btn.Width, this.button1.Height - btn.Height);
方法"InitializeComponent"内的代码设计器生成,不应手动修改。请删除任何更改,然后尝试重新打开设计器。
我想让单击按钮的时候完成一个事件
单击小三角的时候完成另一个事件 如何区分我每次点击的是按钮还是小三角呢
请路人指点一下 这个问题头痛好几天了谢谢
单击小三角的时候完成另一个事件 如何区分我每次点击的是按钮还是小三角呢
————————————————————————————————————你可以做个控件:一个button,右边紧挨者再加一个有个三角形标记的小按钮,小按钮单击时弹出菜单,主按钮单击时做另外的事情说过N次了
{
if(e.Button == MouseButtons.Left)
{
this.contextMenu1.Show(Control.MousePosition);
}
}
右鍵按鈕就會彈出contextMenuStrip1