Столкнувшись с проблемой при инициализации компонентов в C # - PullRequest
1 голос
/ 15 ноября 2010

Я студент C # программист.Я просто изучаю локализацию и глобализацию.Я только что создал кнопку, чтобы изменить текущую культуру (CurrentCulture и CurrentUICulture) текущего потока.Но после запуска этой программы эта кнопка не работает так, как мне нужно.Событие нажатия кнопки, которое я написал, выглядит следующим образом:

    private void BtnLocalized_Click(object sender, EventArgs e)
    {
        CultureInfo CI = new CultureInfo("hi-IN");
        if (Thread.CurrentThread.CurrentCulture != CI)
        {
            Thread.CurrentThread.CurrentCulture = CI;
            Thread.CurrentThread.CurrentUICulture = CI;
        }
        else
        {
            CI = new CultureInfo("en-IN");
            Thread.CurrentThread.CurrentCulture = CI;
            Thread.CurrentThread.CurrentUICulture = CI;
        }
    }

Я также пытался вызвать метод InitializeComponent() после блока else.Но он просто создает другой компонент кнопки без удаления текущей кнопки.

Как я могу повторно инициализировать эту кнопку

Редактировать:
Я просто хочу изменитьText свойства с моим текущим локальным языком, установленным для этого приложения.

1 Ответ

2 голосов
/ 15 ноября 2010

Метки формы устанавливаются при ее создании и не обновляются автоматически.

Есть два варианта:

  1. Простой вариант - закрыть и снова открыть форму;

  2. Сложный вариант - вручную обновить метки всех элементов управления вашей формы. Если вы посмотрите в «Designer.cs» вашей формы, вы увидите, как установлены метки. Вы можете продублировать такой механизм самостоятельно.

Я бы выбрал вариант 1.

...