2017-12-27 14 views
1

Ich machte einen Sprachschalter (Englisch, Polski) und ich wollte, wenn Tabpage enthält Wort "New" dann ändern Sie es zu "Nowy" und umgekehrt, aber ich habe ein Problem. Diese Registerkarte wird programmgesteuert erstellt und ich weiß nicht, wie ich den Kopftext der Überschrift ändern soll. Ich habe dies:C# Winforms Text von programmatisch gemachten Registerkarte ändern

private void englishToolStripMenuItem_Click(object sender, EventArgs e) 
{ 
     Class1.LangNumber = 2; 
     Class1.ChangeLanguage(2); 
     polskiToolStripMenuItem.Checked = false; 
     englishToolStripMenuItem.Checked = true; 
     fileToolStripMenuItem.Text = Class1.file; 
     openToolStripMenuItem.Text = Class1.open; 
     saveToolStripMenuItem.Text = Class1.save; 
     saveAsToolStripMenuItem.Text = Class1.saveas; 
     edjtToolStripMenuItem.Text = Class1.edit; 
     cutToolStripMenuItem.Text = Class1.cut; 
     copyToolStripMenuItem.Text = Class1.copy; 
     pasteToolStripMenuItem.Text = Class1.paste; 
     selectAllToolStripMenuItem.Text = Class1.selectall; 
     deselectAllToolStripMenuItem.Text = Class1.deselectall; 
     dateAndTimeToolStripMenuItem.Text = Class1.dateandtime; 
     nicknameToolStripMenuItem.Text = Class1.nickname; 
     autoWordSelectionToolStripMenuItem.Text = Class1.awsel; 
     tabManagementToolStripMenuItem.Text = Class1.tabmgmt; 
     newTabToolStripMenuItem.Text = Class1.ntab; 
     deleteSelectedTabToolStripMenuItem.Text = Class1.dtab; 
     infoToolStripMenuItem.Text = Class1.iands; 
     electryNotepadInfoToolStripMenuItem.Text = Class1.info; 
     setNicknameToolStripMenuItem.Text = Class1.setnickname; 
     languagesToolStripMenuItem.Text = Class1.lang; 
     nicknamerror = Class1.nicknameloaderror; 
     savedialog = Class1.saved; 
     savedialogcap = Class1.savecap; 
     nicknameerrorcap = Class1.nlecap; 
     ncreate = Class1.ncreation; 
     ncreatecap = Class1.ncreationcap; 
     setnicknamedialog = Class1.setnicknamedialog; 
     newtab = Class1.nev; 
     for (int i = 0; i <= tabControl1.TabCount - 1; i++) 
     { 

      TabPage t = tabControl1.TabPages[i]; 
      if (t.Text.Contains("Nowy")) 
      { 

       t.Text.Replace("Nowy", "New"); 

      } 
      Application.DoEvents(); 

    } 

} 

    private void polskiToolStripMenuItem_Click(object sender, EventArgs 
    e) 
{ 
     Class1.LangNumber = 1; 
     Class1.ChangeLanguage(1); 
     polskiToolStripMenuItem.Checked = true; 
     englishToolStripMenuItem.Checked = false; 
     fileToolStripMenuItem.Text = Class1.file; 
     openToolStripMenuItem.Text = Class1.open; 
     saveToolStripMenuItem.Text = Class1.save; 
     saveAsToolStripMenuItem.Text = Class1.saveas; 
     edjtToolStripMenuItem.Text = Class1.edit; 
     cutToolStripMenuItem.Text = Class1.cut; 
     copyToolStripMenuItem.Text = Class1.copy; 
     pasteToolStripMenuItem.Text = Class1.paste; 
     selectAllToolStripMenuItem.Text = Class1.selectall; 
     deselectAllToolStripMenuItem.Text = Class1.deselectall; 
     dateAndTimeToolStripMenuItem.Text = Class1.dateandtime; 
     nicknameToolStripMenuItem.Text = Class1.nickname; 
     autoWordSelectionToolStripMenuItem.Text = Class1.awsel; 
     tabManagementToolStripMenuItem.Text = Class1.tabmgmt; 
     newTabToolStripMenuItem.Text = Class1.ntab; 
     deleteSelectedTabToolStripMenuItem.Text = Class1.dtab; 
     infoToolStripMenuItem.Text = Class1.iands; 
     electryNotepadInfoToolStripMenuItem.Text = Class1.info; 
     setNicknameToolStripMenuItem.Text = Class1.setnickname; 
     languagesToolStripMenuItem.Text = Class1.lang; 
     nicknamerror = Class1.nicknameloaderror; 
     savedialog = Class1.saved; 
     savedialogcap = Class1.savecap; 
     nicknameerrorcap = Class1.nlecap; 
     ncreate = Class1.ncreation; 
     ncreatecap = Class1.ncreationcap; 
     setnicknamedialog = Class1.setnicknamedialog; 
     newtab = Class1.nev; 
     for(int i = 0; i <= tabControl1.TabCount - 1; i++) 
     { 

      TabPage t = tabControl1.TabPages[i]; 
      if(t.Text.Contains("New")) 
      { 

       t.Text.Replace("New", "Nowy"); 

      } 
      Application.DoEvents(); 

     } 

} 

Die Class1-Datei:

 using System; 
     using System.Collections.Generic; 
     using System.Linq; 
     using System.Text; 
     using System.Threading.Tasks; 

     namespace ElectryNotepad 
     { 
     public static class Class1 
     { 
     public static string file = "Plik"; 
     public static string open = "Otwórz"; 
     public static string save = "Zapisz"; 
     public static string saveas = "Zapisz jako"; 
     public static string edit = "Edycja"; 
     public static string cut = "Wytnij"; 
     public static string copy = "Kopiuj"; 
     public static string paste = "Wklej"; 
     public static string selectall = "Zaznacz wszystko"; 
     public static string deselectall = "Odznacz wszystko"; 
     public static string dateandtime = "Data i Godzina"; 
     public static string nickname = "Nazwa"; 
     public static string awsel = "Automatyczne zaznaczanie słów"; 
     public static string tabmgmt = "Zarządzanie zakładkami"; 
     public static string ntab = "Nowa zakładka"; 
     public static string dtab = "Usuń zaznaczoną zakładkę"; 
     public static string iands = "Informacje i ustawienia"; 
     public static string info = "ElectryNotepad - Informacje"; 
     public static string setnickname = "Ustaw nazwę"; 
     public static string nicknameloaderror = "Nie ustawiłeś swojej nazwy. 
     Proszę kliknąć opcję \"Ustaw nazwę\" w \"Informacje i Ustawienia\"."; 
     public static string nlecap = "Błąd nazwy"; 
     public static string setnicknamedialog = "Proszę wpisz swoją nazwę w 
     pole tekstowe poniżej (max 32 znaki) \n \n UWAGA! POPRZEDNIA NAZWA 
     ZOSTANIE USUNIĘTA!"; 
     public static string ncreation = "\n \n Czy na chcesz ustawić tą 
     nazwę?"; 
     public static string ncreationcap = "Asystent ustawiania nazwy"; 
     public static string nev = "Nowy "; 
     public static string saved = "Czy chcesz zapisać swoją pracę?"; 
     public static string savecap = "Zapisywanie"; 
     public static string lang = "Język"; 
     public static bool Polish = true; 
     public static int LangNumber = 1; 

     public static void ChangeLanguage(int l) 
     { 

      switch(l) 
      { 

       case 1: 
        Polish = true; 
        lang = "Język"; 
        file = "Plik"; 
        open = "Otwórz"; 
        save = "Zapisz"; 
        saveas = "Zapisz jako"; 
        edit = "Edycja"; 
        cut = "Wytnij"; 
        copy = "Kopiuj"; 
        paste = "Wklej"; 
        selectall = "Zaznacz wszystko"; 
        deselectall = "Odznacz wszystko"; 
        dateandtime = "Data i Godzina"; 
        awsel = "Automatyczne zaznaczanie słów"; 
        tabmgmt = "Zarządzanie zakładkami"; 
        nickname = "Nazwa"; 
        ntab = "Nowa zakładka"; 
        dtab = "Usuń zaznaczoną zakładkę"; 
        iands = "Informacje i ustawienia"; 
        info = "ElectryNotepad - Informacje"; 
        setnickname = "Ustaw nazwę"; 
        nicknameloaderror = "Nie ustawiłeś swojej nazwy. Proszę 
        kliknąć opcję \"Ustaw nazwę\" w \"Informacje i 
        Ustawienia\"."; 
        nlecap = "Błąd nazwy"; 
        setnicknamedialog = "Proszę wpisz swoją nazwę w pole 
        tekstowe poniżej (max 32 znaki) \n \n UWAGA! POPRZEDNIA 
        NAZWA ZOSTANIE USUNIĘTA!"; 
        ncreation = "\n \n Czy na chcesz ustawić tą nazwę?"; 
        ncreationcap = "Asystent ustawiania nazwy"; 
        nev = "Nowy "; 
        saved = "Czy chcesz zapisać swoją pracę?"; 
        savecap = "Zapisywanie"; 
       break; 
       case 2: 
        Polish = false; 
        lang = "Language"; 
        file = "File"; 
        open = "Open"; 
        save = "Save"; 
        saveas = "Save as"; 
        edit = "Edit"; 
        cut = "Cut"; 
        copy = "Copy"; 
        paste = "Paste"; 
        dateandtime = "Date and time"; 
        selectall = "Select All"; 
        deselectall = "Deselect All"; 
        awsel = "Auto Word Selection"; 
        tabmgmt = "Tab Management"; 
        nickname = "Nickname"; 
        ntab = "New Tab"; 
        dtab = "Delete Selected Tab"; 
        iands = "Info and Settings"; 
        info = "ElectryNotepad - Info"; 
        setnickname = "Set Nickname"; 
        nicknameloaderror = "You didn't set nickname. Please, press 
        \"Set Nickname\" in \"Info and Settings\"."; 
        nlecap = "Nickname error"; 
        setnicknamedialog = "Please type your nickname in text field 
        below (max 32 characters) \n \n CAUTION! PREVIOUS NICKNAME 
        WILL BE DELETED!"; 
        ncreation = "\n \n Are you sure you want to set this 
        nickname?"; 
        ncreationcap = "Nickname creation assistant"; 
        nev = "New "; 
        saved = "Do you want to save this?"; 
        savecap = "Saving"; 
        break; 

      } 

     } 

    } 
} 

Aber es funktioniert nicht. Wenn ich Knopf für Polski oder für Englisch klicke, ändert es nichts. Hilf mir bitte.

+0

Es gibt eine Menge Code hier, um nicht so viel zu zeigen. –

+0

Standard-Bug, Programmierer sind für immer von was "ersetzt" in String.Replace() bedeutet weggeworfen. Es muss t.Text = t.Text.Replace ("Nowy", "New") sein; –

+0

Mögliches Duplikat von [string.Replace (oder einer anderen Zeichenfolgenmodifikation) funktioniert nicht] (https://stackoverflow.com/questions/1948978/string-replace-or-other-string-modification-not-working984) –

Antwort

0

OK, ok. Mir wurde klar, dass ich eine andere Möglichkeit habe, mein Programm zu übersetzen. Ich kann das Lesen von Datei in der Suche nach Text machen und es auf diese Zeichenfolgen anwenden. Thread geschlossen

Verwandte Themen