扩展方法不尊重My.Application.Culture

时间:2019-04-13 23:07:06

标签: vb.net winforms culture

在VB.NET 4.72 WinForms项目中,我放置了一个MDI表单(MDIForm1),一个MDIChild表单(Form1)和一个模块。在模块中,我声明了一个扩展方法:

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

在MDIForm的Load事件中,我有以下代码:

    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

调试项目时,调用ShowChild时出现的MessageBox将显示“ en-US”而不是NewCultureName的值。如果在“ Form1.ShowChild”语句中放置一个断点,我可以看到区域性确实已更改为NewCultureName的值。该应用程序的行为就像是My.Application的两个不同实例一样,一个是MDI形式,另一个是ShowChild内部。为什么会这样?

2019-04-14:编辑以更准确地描述问题。

0 个答案:

没有答案