当前位置: 首页 > 编程语言 > C#

动态添加ToolStripMenuItems到MenuStrip(C#-Winforms)分享

时间:2023-04-10 12:45:14 C#

动态添加ToolStripMenuItems到MenuStrip(C#/Winforms)问题是当我使用“添加”方法将新项添加到ToolStripItemCollection时,我得到了一些重载……有意义的是字符串参数、图像参数和EventHandler参数。因为我的下拉列表将在运行时用作动态历史记录,这意味着它将在编译时变为空。这意味着我无法使用设计器表面的标准路径添加事件处理程序(单击时)。我被迫使用上面的重载。我的图像对我没用,但动态添加事件处理程序是我感兴趣并需要帮助的事情。url:http://msdn.microsoft.com/en-us/library/bxdt0s8t.aspx没有其他重载可以帮助我所以我必须使用图像......任何人都知道如何解决这个问题并告诉我如何完全满足add方法的重载版本。蒂亚。更新:我在我当前的项目中再次这样做,但代码更流畅,但原理是相同的,在运行时动态添加事件处理程序。当我回到家时,将用一些示例代码更新它。我这样做的方法是创建一个ToolStripMenuItems数组并用我要添加的项目填充该数组。我创建了一个方法来处理点击事件,并让它检查我在运行时创建的每个项目的独特之处。您可以尝试使用每个ToolStripMenuItem的Name或Tag属性。然后在要添加的菜单中当场使用AddRange。所以你的代码看起来像这样:privatevoidBuildMenuItems(){ToolStripMenuItem[]items=newToolStripMenuItem[2];//你显然会在运行时计算这个值for(inti=0;iWhatwentwrong:ToolStripItemitem=toolStripItems.Add("MyItem");item.Click+=newEventHandler(....);错过了什么?我和PhilipWallace有类似的问题。注意ToolStripItem和ToolStripMenuItem之间的区别非常重要......我将ToolStripItems添加到ToolStripMenuItem的DropDownItems中,它们显示出来,并且所有属性都设置正确并且可以在代码中访问,但它们不显示任何文本!切换到ToolStripMenuItem解决了问题。关于原始问题,我一直在使用空构造函数,并设置我需要的字段。(我在vb.net上.net4.0,它不会让我调用NewToolStripMenuItem()因为它有一个MustInherit标签,所以我创建了这个类:EventHandler)MyBase.New()Me.Text=textMe.Visible=TrueMe.Tag=valueAddHandlerMe.Click,handlerEndSubEndClass您只需为图像传递null。以上就是C#学习教程:动态添加ToolStripMenuItems到MenuStrip分享的全部内容(C#/Winforms)。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注---Menu.DropDownItems。添加(文本,空,事件处理程序);本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: