我正在研究MDI Windows Forms应用程序。我的 parent 表格有ToolStrip菜单和一些ToolStripDropDownButtons。我想将VisibleToolStripDropDownButton属性更改为相应的用户同意的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/

10-12 13:17