Tag: toolstripdropdown

Windows窗体 – ToolStripItem可见属性始终设置为false

我正在研究MDI Windows Forms应用程序。 我的父窗体有ToolStrip菜单和一些ToolStripDropDownButtons 。 我想更改ToolStripDropDownButton的Visible属性,或者根据用户的权限更改它具有的某些ToolStripItems (子按钮)。 以下是我编写的用于管理此方法的方法的一部分: private void SetToolStripDropDownVisibility(ToolStripDropDownButton mainBtn, params ToolStripItem[] item) { mainBtn.Visible = false; foreach (ToolStripItem tempItem in item) { tempItem.Visible = true; } } 我作为第一个参数传递ToolStripDropDownButton和所有其他“子按钮”作为参数列表。 但是当我在部分foreach (ToolStripItem tempItem in item)进入调试模式时, tempItem Visible属性被标记为false。 但是在设计器中,此属性设置为true。 你可以看到我甚至尝试明确地将值更改为true – tempItem.Visible = true; 但好像这条线似乎无所作为。 Visible的值仍为false ,我无法更改它。 这只是方法的开头,我想不出其他可能搞乱ToolStrip项目的代码。 我试图将mainBtn.Visible的值mainBtn.Visible为true或false,认为可能存在任何连接,但似乎这不是问题。 所以任何想法为什么会发生这种情况,为什么我无法改变Visible值,当然也无法改变它。

如何在ToolStripItemCollection中对项目进行排序?

我通过以下方式动态地将字符串(项)添加到ToolStripItemCollection: Dim onClickHandler As System.EventHandler = New System.EventHandler(AddressOf Symbol_Click) Dim item As New ToolStripMenuItem(newSymbol, Nothing, onClickHandler) SomeToolStripMenuItem.DropDownItems.Add(item) 因此,这些项目不会一次性添加,而是在整个程序会话中基于外部触发器逐个添加。 我想在每次添加新项目时对下拉列表进行排序。 我有什么选择来实现这一目标?

当DropDownStyle为Simple时,ToolStripCombobox显示在屏幕的左上角

当我将DropDownStyle设置为Simple时,我有一个ToolStripCombobox 。 第一次打开菜单时,它会显示在屏幕的左上角。 但是,当我第二次选择相同的项目时,它会显示在正确的位置。 有没有办法阻止代码显示屏幕左上角的列表? 预先感谢您的任何帮助。 第一次 第二次