尝试更改menustrip上的文本时出错

时间:2014-09-10 23:03:48

标签: c#

我有一个用户输入文本的表单,而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);
            }
        }
    }
}

我找不到问题。

1 个答案:

答案 0 :(得分:1)

您的代码无法正常工作,因为String.Replace方法返回带有相应替换的新字符串。
使用以下代码替换else部分:

if (subitem.Text.Contains(oldtext))
    subitem.Text = subitem.Text.Replace(oldtext, newtext);