我在Windows Forms应用程序中有一些代码。我想更改c#代码中我的toolStripMenuItem下拉项目的可见性。我设置可见性,但是当我在代码中设置断点时,项目的可见性不变。
这是我的代码:
foreach (ToolStripMenuItem it in _frmMain.menuStripMain.Items)
{
foreach (ToolStripMenuItem i in it.DropDownItems)
{
if (i.Text == this._listAppSchema[0].ObjectName.ToString())
{
i.Visible = true;
}
else
{
i.Visible = false;
}
}
}
如何解决呢?
Visible
是一个复杂的属性。它没有设置并读取相同的内容。
如果将其设置为true
或false
它表示对象是否可见(或不可见)。然而,当你读它,它表明控制的能见度是否设置为真或假,但它会读出false
,如果链中的任何父也隐藏。
因此,设置和读取它是另一回事:即使将其设置为true
,false
当您将其读回时,它也可能会出现在调试器中(同样,如果链中的任何父对象都被隐藏了):true
当所有父对象都位于虽然可见。
对于ToolStripItem
特定情况,尽管使用Available
属性而不是Visible
:这应该可以实现您的期望。文档(我链接了)专门讨论了这一点:
Available属性与Visible属性的不同之处在于Available指示是否显示ToolStripItem,而Visible指示是否显示ToolStripItem及其父项。将Available或Visible设置为true或false会将另一个属性设置为true或false。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句