资源文件操作类
Imports System.Resources Public Class PublicFun '资源文件路径 Public Shared path As String = "testResource.cn" '资源文件访问对象 Public Shared res As New Resources.ResourceManager(path, System.Reflection.Assembly.GetExecutingAssembly()) '有key取得资源文件中的值 Public Shared Function GetStr(ByVal s As String) As String Return res.GetString(s) End Function '重新加载页面 Public Shared Sub ReLoad(ByRef f As Form) Dim baseType As String For Each i In f.Controls baseType = i.GetType.BaseType.ToString() Try '添加帅选条件 If baseType = "System.Windows.Forms.Button" Then i.Text = PublicFun.GetStr(i.MyText) End If Catch e As Exception MsgBox(e.Message) End Try Next End Sub End Class
派生自button的类
Public Class Component1 Inherits Button Protected Overrides Sub OnPaint(ByVal pevent As System.Windows.Forms.PaintEventArgs) MyBase.OnPaint(pevent) End Sub Private _myText As String '通过设置key,用取得的value初始化text属性 Public Property MyText() As String Get Return _myText End Get Set(ByVal value As String) If value = "" Then _myText = value Return End If Dim s As String = PublicFun.GetStr(value) If s = "" Then MsgBox("error") Return Else Text = s _myText = value End If End Set End Property End Class
baseForm
Public Class BaseForm Inherits Form Protected Overrides Sub OnLoad(ByVal e As System.EventArgs) PublicFun.ReLoad(Me) MyBase.OnLoad(e) End Sub End Class
Form1
Imports System.Resources Public Class Form1 Inherits BaseForm '通过combobox控制程序的语言 Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged If ComboBox1.SelectedItem.ToString() = "cn" Then PublicFun.path = "testResource.cn" ElseIf ComboBox1.SelectedItem.ToString() = "en" Then PublicFun.path = "testResource.en" Else '其他情况 Return End If '更新资源管理器 PublicFun.res = New ResourceManager(PublicFun.path, System.Reflection.Assembly.GetExecutingAssembly()) '重新加载页面 PublicFun.ReLoad(Me) End Sub Private Sub Component13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Component13.Click 'form2加载的时候自动采用最新的语言版本 Dim f As New Form2 f.Show() End Sub End Class