C# 右键菜单事件


我想使用ContextMenuStrip控件实现文件的添加,如下图所示:

鼠标右键弹出MenuStrip,当选择“添加》”,点击后面的组(文件)名后,就添加到相应的组或者文件下面。
关键是组(文件)的个数是变化的(1-n),这个触发事件该怎么写?其实这就像office办公软件的打开最近文件差不多,因为最近文件总是变化的,那么office的打开最近文件是怎么实现的?

总的要求:右键点击添加后能添加到指定的组或者文件中。。。

8 个解决方案

#1


ContextMenuStrip.Items.Add 动态添加。
或者你先添加好了,在运行时通过Visibled控制

#2


引用 1 楼 caozhy 的回复:
ContextMenuStrip.Items.Add 动态添加。
或者你先添加好了,在运行时通过Visibled控制

ContextMenuStrip.Items.Add是将新建的组(或文件)名添加到ContextMenuStrip中,可关键是触发事件?就是说当我进行添加操作时,是要添加到指定的组(或文件),那么当我选择到相应的的文件名时会有一个触发事件,指示将该数据添加到指定的组(或文件),这个触发事件是怎么实现的???

多谢回答。。。

#3


菜单项.Click+=你的事件处理程序。
事件处理程序通过sender判断是哪个菜单触发的。

#4


。。。
首先你肯定知道要添加多少个的“组文件” 
在添加的代码里加入

ContextMenuStrip. .DropDownItems.Add(CreateItem(xxx1,路径1))
ContextMenuStrip. .DropDownItems.Add(CreateItem(xxx2,路径2))


ToolStripItem CreateItem(string txt,string path)
{
     ToolStripItem  item=new ToolStripItem(txt)
      item.Tag=path
      item.Click+=item_Click;
}

void Item_Click(object sender,EventArgs e)
{
     ToolStripItem  obj=sender as ToolStripItem  ;
     string path= obj.Tag.ToString();
     这里该干嘛干嘛
}

#5


引用 2 楼 u012558127 的回复:
Quote: 引用 1 楼 caozhy 的回复:

ContextMenuStrip.Items.Add 动态添加。
或者你先添加好了,在运行时通过Visibled控制

ContextMenuStrip.Items.Add是将新建的组(或文件)名添加到ContextMenuStrip中,可关键是触发事件?就是说当我进行添加操作时,是要添加到指定的组(或文件),那么当我选择到相应的的文件名时会有一个触发事件,指示将该数据添加到指定的组(或文件),这个触发事件是怎么实现的???

多谢回答。。。


触发事件使用同一个,根据传入的sender判断是谁点击,编写事件

#6


引用 4 楼 wyd1520 的回复:
。。。
首先你肯定知道要添加多少个的“组文件” 
在添加的代码里加入

ContextMenuStrip. .DropDownItems.Add(CreateItem(xxx1,路径1))
ContextMenuStrip. .DropDownItems.Add(CreateItem(xxx2,路径2))


ToolStripItem CreateItem(string txt,string path)
{
     ToolStripItem  item=new ToolStripItem(txt)
      item.Tag=path
      item.Click+=item_Click;
}

void Item_Click(object sender,EventArgs e)
{
     ToolStripItem  obj=sender as ToolStripItem  ;
     string path= obj.Tag.ToString();
     这里该干嘛干嘛
}


哦  多谢回答,我来试着编写。。。

#7


引用 3 楼 caozhy 的回复:
菜单项.Click+=你的事件处理程序。
事件处理程序通过sender判断是哪个菜单触发的。


对。。。

#8


引用 5 楼 wish907 的回复:
Quote: 引用 2 楼 u012558127 的回复:

Quote: 引用 1 楼 caozhy 的回复:

ContextMenuStrip.Items.Add 动态添加。
或者你先添加好了,在运行时通过Visibled控制

ContextMenuStrip.Items.Add是将新建的组(或文件)名添加到ContextMenuStrip中,可关键是触发事件?就是说当我进行添加操作时,是要添加到指定的组(或文件),那么当我选择到相应的的文件名时会有一个触发事件,指示将该数据添加到指定的组(或文件),这个触发事件是怎么实现的???

多谢回答。。。


触发事件使用同一个,根据传入的sender判断是谁点击,编写事件


对,多谢回答。。。
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告