30分问个简单的WINFORM的contextMenuStrip1问题(结帖一直是100%)

duhouqi2 2008-08-04 04:05:20
在之前循环增加 contextMenuStrip1的选项 ,是从数据库读出来的
然后给他重载jizhancaidan_click事件

this.contextMenuStrip1.Items.Add("" + dr2[0].ToString() + "." + dr2[1].ToString() + "");
this.contextMenuStrip1.Items[i].Click += new EventHandler(jizhancaidan_click);


事件代码如下:
private void jizhancaidan_click(object sender, EventArgs e)
{
我的问题是想在这里获取我在contextMenuStrip1选中的项目的text
}

高手赐教
...全文
273 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
duhouqi2 2008-08-04
  • 打赏
  • 举报
回复
我郁闷,实际上是我这里写错了
if (e.Button != MouseButtons.Right)

应该是等于而不是不等于,太小的问题反而不容易被发现
GhostAdai 2008-08-04
  • 打赏
  • 举报
回复
linshi.ContextMenuStrip = this.contextMenuStrip1;
------------------------------------------------
这是你绑定右键菜单的代码吗?把它移出去。
duhouqi2 2008-08-04
  • 打赏
  • 举报
回复
我在想问题是不是出在这?
if (e.Button != MouseButtons.Right)
{
((Control)sender).ContextMenuStrip = this.contextMenuStrip3;
}
duhouqi2 2008-08-04
  • 打赏
  • 举报
回复
实际上我所有这样做的方法都有这样的问题
就是先要在控件上点一下左键再点右键才能显示
duhouqi2 2008-08-04
  • 打赏
  • 举报
回复
abc是一个picturebox,在这个控件上点一下右键就出现contextMenuStrip1
rqx110 2008-08-04
  • 打赏
  • 举报
回复
不知道你的ABC是什么,可以设置你的abc的ContextMenuStrip属性为你的contextMenuStrip1,这样应该就可以了,
duhouqi2 2008-08-04
  • 打赏
  • 举报
回复
非常感谢,这个问题解决了,马上结贴
不过还有个问题就是我这样做有个问题
我这个菜单是这样出来的
abc.MouseClick += new MouseEventHandler(jizhan_click);

jizhan_click事件就是一楼那个事件
ABC就是我需要点击后出现的控件

但是结果是我需要在这个abc上点下左键再点下右键才会出来菜单,不知道怎么回事,帮我看下这个载入是不是有问题?

private void jizhan_click(object sender, MouseEventArgs e) //机站菜单
{
this.contextMenuStrip1.Items.Clear();
if (e.Button != MouseButtons.Right)
{

//逻辑处理
...
while (dr2.Read())
{
this.contextMenuStrip1.Items.Add("" + dr2[0].ToString() + "." + dr2[1].ToString() + "");
this.contextMenuStrip1.Items[i].Click += new EventHandler(jizhancaidan_click);
i++;
}

...
}
linshi.ContextMenuStrip = this.contextMenuStrip1;
}
etherealkite 2008-08-04
  • 打赏
  • 举报
回复
string s=((ToolStripItem)sender).Text;

s的值就是你要的
我姓区不姓区 2008-08-04
  • 打赏
  • 举报
回复

ToolStripMenuItem tsmi = sender as ToolStripMenuItem;
//tsmi.Text
Fioit 2008-08-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 rqx110 的回复:]
C# code
private void jizhancaidan_click(object sender, EventArgs e)
{
ToolStripMenuItem item = sender as ToolStripMenuItem;
item.Text;//这里就是你要的结果
}
[/Quote]
这个好用。我的有笔误 :)
Fioit 2008-08-04
  • 打赏
  • 举报
回复
sender.Text


MenuItem menuItem = (MenuItem) sender;
sender.Text

不知道行不行
rqx110 2008-08-04
  • 打赏
  • 举报
回复

private void jizhancaidan_click(object sender, EventArgs e)
{
ToolStripMenuItem item = sender as ToolStripMenuItem;
item.Text;//这里就是你要的结果
}

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧