我正在研究MDI Windows Forms
应用程序。我的 parent 表格有ToolStrip
菜单和一些ToolStripDropDownButtons
。我想将Visible
的ToolStripDropDownButton
属性更改为相应的用户同意的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)
部分进入 Debug模式时,tempItem
Visible属性被标记为false。但是,在设计器中,此属性设置为true。您可以看到,我什至尝试将其值显式更改为true-tempItem.Visible = true;
,但似乎此行无济于事。 Visible
的值仍然是false
,我无法更改它。这只是该方法的开始,我想不出其他可能与
ToolStrip
项混淆的代码。我试图将mainBtn.Visible
的值更改为true或false,以为可能存在任何联系,但这似乎不是问题。所以任何想法为什么会发生,为什么我不能更改Visible
值,当然还有任何更改方法。 最佳答案
解决方案很简单,但并不明显。当我们必须使用ToolStripItems
的一部分ToolSTripDropDownButton
来解决可见性问题时,我们不得不使用普通按钮来解决它,我们必须使用Available
属性。正是为此目的而设计的。希望有人花更少的时间阅读这篇文章来解决这个问题!
关于c# - Windows窗体-ToolStripItem的Visible属性始终设置为false,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15683820/