Метод расширения не уважает My.Application.Culture - PullRequest
0 голосов
/ 14 апреля 2019

В проекте WinForms VB.NET 4.72 я поместил форму MDI (MDIForm1), форму MDIChild (Form1) и модуль. В модуле я объявил метод расширения:

   <Extension()>
    Public Sub ShowChild(SourceForm As Form)
        MessageBox.Show(My.Application.Culture.ToString)
    End Sub

В событии Load MDIForm у меня есть следующий код:

    My.Application.ChangeCulture(NewCultureName)
    My.Application.ChangeUICulture(NewCultureName)
    'NewCultureName is a string which is set to any valid value other than "en-US".
    Form1.ShowChild

При отладке проекта MessageBox, который появляется при вызове ShowChild, отображает «en-US» вместо значения NewCultureName. Если в операторе «Form1.ShowChild» ставится точка останова, я вижу, что культура действительно изменилась на значение NewCultureName. Приложение работает так, как будто есть два разных экземпляра My.Application, один в форме MDI, а другой внутри ShowChild. Почему это происходит?

2019-04-14: отредактировано для более точного описания проблемы.

...