C# 删除子菜单项
我想删除子菜单项。我想保留前两个项目,并删除所有其他项目。 前两个的文本是“Beheer”和分隔符“-” 我试过这个:C# 删除子菜单项,c#,winforms,C#,Winforms,我想删除子菜单项。我想保留前两个项目,并删除所有其他项目。 前两个的文本是“Beheer”和分隔符“-” 我试过这个: for (int i = 0; i < this.oracleToolStripMenuItem.DropDownItems.Count; i++) { if (this.oracleToolStripMenuItem.DropDownItems[i].Text != "&Beheer") { if ( this.oracleToo
for (int i = 0; i < this.oracleToolStripMenuItem.DropDownItems.Count; i++)
{
if (this.oracleToolStripMenuItem.DropDownItems[i].Text != "&Beheer")
{
if ( this.oracleToolStripMenuItem.DropDownItems[i].Text != "-")
{
this.oracleToolStripMenuItem.DropDownItems.RemoveAt(i);
}
}
}
for(int i=0;i
这不会删除所有项目。如果要保留前两项,只需执行以下操作:
while ( this.oracleToolStripMenuItem.DropDownItems.Count > 2 )
this.oracleToolStripMenuItem.DropDownItems.RemoveAt(2);
RemoveAt(2)将删除第三项,假设存在第三项。我们这样做直到只有2个存在
(2) 是第三项,因为第一项是(0)。如果要保留前两项,只需执行以下操作:
while ( this.oracleToolStripMenuItem.DropDownItems.Count > 2 )
this.oracleToolStripMenuItem.DropDownItems.RemoveAt(2);
RemoveAt(2)将删除第三项,假设存在第三项。我们这样做直到只有2个存在
(2) 是第三项,因为第一项是(0)。从列表中删除时,最好从底部开始,逐步向上。因为从列表中删除项目可能会更改循环中使用的索引。从下往上工作没有这个问题,它被称为反向或反向循环:
for(int i=this.oracleToolStripMenuItem.DropDownItems.Count-1;i>=0;i--)
从列表中删除时,最好从下往上开始。因为从列表中删除项目可能会更改循环中使用的索引。自下而上工作没有这个问题,它被称为反向或反向循环:for(int i=this.oracleToolStripMenuItem.DropDownItems.Count-1;i>=0;i--)
也许你可以解释一下为什么你的数字“2”必须用在RemoveAt()
-不让它看起来像一个神奇的数字。是的,部分-例如,告诉人们前4个元素将是第3个元素等等,这对你的答案来说是一个很好的补充。也许你可以解释为什么在RemoveAt()
中必须使用数字“2”-不让它看起来像一个神奇的数字。是的,部分-但告诉人们前4个元素,例如,将是第3个元素,等等,这将是一个很好的补充你的答案。