我正在开发一个MDI Windows Forms应用程序。我的父表单有ToolStripmenu 和一些ToolStripDropDownButtons. 我想根据用户的许可Visible将 or 的属性更改为它具有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)但是,当我在部分中进入调试模式时,tempItemVisible 属性被标记为 false。然而,在设计器中,此属性设置为 true。您可以看到我什至尝试明确地将值更改为 true -tempItem.Visible = true;但似乎这条线什么也没做。Visible留下的价值,false我无法改变。
这只是方法的开始,我想不出其他代码会弄乱这些ToolStrip项目。我试图将值更改mainBtn.Visible为真或假,认为可能存在任何联系,但似乎这不是问题所在。所以任何想法为什么会发生这种情况,为什么我不能改变Visible价值,当然还有任何方式来做到这一点。