Как я могу изменить свою winform на другой язык - PullRequest
0 голосов
/ 26 марта 2019

У меня есть winform, и я изменил язык формы на голландский.После этого я редактирую название меток групповых ячеек и т. Д. В тот момент, когда я меняю радиокнопку на нидерландский язык, меняются только названия групповых ячеек, а не метки в текстовых полях.

Я изменил язык своей формы на голландский,Тогда я сделал 2 Radiobuttons голландский и немецкий.в тот момент, когда я нажимаю на радиопереключатель на голландском языке, он меняет только название групповых блоков, а остальные ярлыки и прочее остаются прежними.

Это метод и код, которые я использовал.

  private void ChangeLanguage(string lang)
        {
            foreach (Control c in Controls)
            {
                ComponentResourceManager resources = new ComponentResourceManager(typeof(Form1));
                resources.ApplyResources(c, c.Name, new CultureInfo(lang));
            }
        }

 private void DutchRadiobutton_CheckedChanged(object sender, EventArgs e)
        {
            ChangeLanguage("nl-NL");

        }

Iхочу, чтобы вся форма изменилась, и каждый элемент управления в ней, когда я щелкаю по голландскому языку radiobutton.На данный момент изменяются только имена групповых блоков, но метки и текстовые поля в них остаются неизменными.

1 Ответ

0 голосов
/ 26 марта 2019

Пример рекурсии

Ввод этого метода может быть «this», например, ссылка вашего элемента управления или GroupBox.

private void ApplyChanges(Control ctrl)
{
    foreach (Control c in ctrl.Controls)
    {
        // Do something

        Debug.WriteLine($"ctrl name: {c.Name}"); // Test code, just to print the control name(s).
        if (c.Controls != null && c.Controls.Count > 0)
        {
            ApplyChanges(ctrl);
        }
    }
}

Способ смены языка

private void ApplyResources(Control parent, CultureInfo culture)
{
    _componentResourceManager.ApplyResources(parent, parent.Name, culture);

    foreach (Control ctl in parent.Controls)
    {
        ApplyResources(ctl, culture);
    }
}

Или взгляните на существующий вопрос / ответ: «Правильный способ изменить язык во время выполнения»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...