Vb.net mdi形式的语言
我在将lenguage设置为MDI表单时遇到问题。 在我的主表单中,我有一个menustrip,我使用资源文件进行翻译 我想知道我做的事情是否正确 我的代码如下(示例): 然后,在我的SalesNote Form_结束活动中Vb.net mdi形式的语言,vb.net,Vb.net,我在将lenguage设置为MDI表单时遇到问题。 在我的主表单中,我有一个menustrip,我使用资源文件进行翻译 我想知道我做的事情是否正确 我的代码如下(示例): 然后,在我的SalesNote Form_结束活动中 Main.SNFrm.Dispose() 这是正确的吗?救命啊 确保您的属性中的IsMdiContainer设置为True,否则您可以通过编程方式将其设置为表单加载时的状态: Private Sub Main_Load(sender As System.Object, e
Main.SNFrm.Dispose()
这是正确的吗?救命啊 确保您的属性中的
IsMdiContainer
设置为True
,否则您可以通过编程方式将其设置为表单加载时的状态:
Private Sub Main_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Me.IsMdiContainer = True
End Sub
您不需要立即为SalesNote表单创建实例:
Public SNFrm As SalesNote
因为您正在这里实例化它:
Private Sub MenuSalesNote_Click(......)
SNFrm = New SalesNote
SNFrm.MdiParent = Me
SNFrm.StartPosition = FormStartPosition.CenterScreen
SNFrm.Show()
End Sub
但是,如果在MenuSalesNote\u Click()
之前调用了SetLanguage()
过程,则最好立即实例化它,或者您可以在此处实例化它:
Private Sub SetLanguage()
SNFrm = New SalesNote
SNFrm.Text = My.Resources....
SNFrm.AcceptBtn.Text = My.Resources...
End Sub
但是,您不再在菜单中实例化它了请注意\u Click()
:
Private Sub MenuSalesNote_Click(......)
SNFrm.MdiParent = Me
SNFrm.StartPosition = FormStartPosition.CenterScreen
SNFrm.Show()
End Sub
您还可以通过检查是否已经存在SalesNote表单的实例来实现这一点,如:
Private Sub MenuSalesNote_Click(......)
If (SNFrm is Nothing) Then
SNFrm = New SalesNote
End if
SNFrm.MdiParent = Me
SNFrm.StartPosition = FormStartPosition.CenterScreen
SNFrm.Show()
End Sub
Private Sub SetLanguage()
If (SNFrm is Nothing) Then
SNFrm = New SalesNote
End if
SNFrm.Text = My.Resources....
SNFrm.AcceptBtn.Text = My.Resources...
End Sub
您不需要关闭
表单中的Main.SNFrm.Dispose()
。顺便问一下,你到底有什么问题?@Edper对吗?我在加载表单之前引用SalesNote,然后在菜单中再次单击下面的“检查我的答案”。如果他只想要他的SNFrm的一个实例,在模块级声明它,并在实例化其表单之前验证它是否为空,这将实现这一点。@Edper但如果我在尝试转换SalesNote时未创建其实例,则抛出异常:对象引用未设置为对象的实例。子集合语言()已加载form@Edper,我需要SetLanguage中的翻译,因为用户可以更改主ffrom中的语言。@Edper最后一段代码,我需要在Public SNFrm中将SalesNote作为新的SalesNote进行实例?感谢所有@Edper Genius!
Private Sub MenuSalesNote_Click(......)
If (SNFrm is Nothing) Then
SNFrm = New SalesNote
End if
SNFrm.MdiParent = Me
SNFrm.StartPosition = FormStartPosition.CenterScreen
SNFrm.Show()
End Sub
Private Sub SetLanguage()
If (SNFrm is Nothing) Then
SNFrm = New SalesNote
End if
SNFrm.Text = My.Resources....
SNFrm.AcceptBtn.Text = My.Resources...
End Sub