我有一个用户输入文本的表单,而MenuStrip中的任何地方都会更改该文本。该方法遍历所有项目,但没有进行更改。 这是我的代码:
private void ChangeMenu(string oldtext, string newtext)
{
frmMenu fmenu = new frmMenu();
MenuStrip menu = fmenu.menuStrip1;
foreach (ToolStripMenuItem item in menu.Items)
{
foreach (ToolStripItem subitem in item.DropDownItems)
{
if (subitem is ToolStripSeparator)
continue;
else
{
if (subitem.Text.IndexOf(oldtext) >= 0)
subitem.Text.Replace(oldtext, newtext);
}
}
}
}
我找不到问题。
答案 0 :(得分:1)
您的代码无法正常工作,因为String.Replace
方法返回带有相应替换的新字符串。
使用以下代码替换else
部分:
if (subitem.Text.Contains(oldtext))
subitem.Text = subitem.Text.Replace(oldtext, newtext);