c#winforms更改以编程方式制作的标签页的文本

问题描述 投票:1回答:2

我做了一个语言切换(英语,Polski),我想如果tabpage包含单词“New”然后将其更改为“Nowy”,反之亦然,但我有一个问题。这个tabPage是以编程方式制作的,我不知道如何更改它的标题文本。我做的:

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();

        }

}

Class1文件:

        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;

            }

        }

    }
}

但它不起作用。当我点击Polski按钮或英语时它不会改变任何东西。请帮帮我。

c# winforms text tabpage
2个回答
0
投票

你的所有概念都是错的。您应该使用翻译机制进行此类工作。

Externalizing the translation of a WinForms application?


0
投票

好的好的。我意识到我可以用另一种方式翻译我的程序。我可以从文件中读取文本并将其应用于这些字符串。线程关闭

© www.soinside.com 2019 - 2024. All rights reserved.