2014-09-10 39 views
0

我有一個窗體,用戶在菜單欄中輸入文本並隨處可見,這些文本將被更改。該方法遍歷所有項目,但不進行更改。 這是我的代碼:錯誤嘗試更改菜單欄上的文本

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

您的代碼不起作用,因爲String.Replace方法返回一個帶有相應替換項的新字符串。
用下面的代碼替換else部分:

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

我刪除了我的方法的專用類的程序,把在主菜單和它的工作。不管怎麼說,還是要謝謝你 – 2014-09-10 23:29:34