VB.Net 多國語系切換製作

最近有一個客戶要求軟體開發需要中英文切換的功能,所以在出國前來測試一下。
很幸運得很快就測試出來,所以在此做個紀錄。
參考網址:
http://www.dotblogs.com.tw/yc421206/archive/2008/12/28/6553.aspx

http://www.dotblogs.com.tw/larrynung/archive/2009/04/24/8158.aspx

http://social.msdn.microsoft.com/forums/zh-TW/232/thread/065282f3-accf-4693-936b-9ba967119ed1/

1.開啟一個新的專案

2.點選圖面上"顯示所有檔案"按鈕

3.點選後的狀態如下圖,在Form1.vb檔案前方會有+號可以拉開

4.先在工具箱中拉出幾個元件,Button1、Button2拿來當作語系切換,Lable1當作文字顯示。

5.設定Form1屬性Localizable切換成Ture

6.切換完成後,將Form1屬性Language切換中文(在此示範中、英文語系切換)

7.確定在設計模式為中文(如下圖1),然後開始設定每一個物件的中文顯示字串

8.完成中文語系顯示(如下圖1)後在下圖2會多出一個資源檔(resx)

9.點開資源檔後會如下圖,之後可以直接在表格內修改文字。

10.然後設定完中文語系後,以同樣的步驟設定新增英文語系。
設定表單屬性Language為英文

11.修改每一個物件的英文顯示(先確認左上方設計模式是否為英文)

12.設定完後點開英文的資源檔如下圖(當然可以不用每一個物件都設定兩次,可以直接編輯表格即可,有沒有發現資源檔中英文的名稱欄位是一樣的呢!!)
 
13.接下來的部分是程式編寫
  1 Imports System.Resources
  2 Imports System.Threading
  3 Imports System.Globalization
  4 
  5 Public Class Form1
  6 
  7     Dim res As System.Resources.ResourceManager '資源檔管理員
  8 
  9     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 10 
 11         res = New Resources.ResourceManager("WindowsApplication2.Form1", Me.GetType().Assembly)
 12 
 13     End Sub
 14 
 15     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 16         '中文顯示按鈕
 17         Thread.CurrentThread.CurrentCulture = New CultureInfo("zh-TW")
 18         Thread.CurrentThread.CurrentUICulture = New CultureInfo("zh-TW")
 19 
 20         Me.Text = res.GetString("$this.Text")
 21         Button1.Text = res.GetString("Button1.Text")
 22         Button2.Text = res.GetString("Button2.Text")
 23         Label1.Text = res.GetString("Label1.Text")
 24 
 25     End Sub
 26 
 27     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
 28         '英文顯示按鈕
 29 
 30         Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US")
 31         Thread.CurrentThread.CurrentUICulture = New CultureInfo("en-US")
 32 
 33         Me.Text = res.GetString("$this.Text")
 34         Button1.Text = res.GetString("Button1.Text")
 35         Button2.Text = res.GetString("Button2.Text")
 36         Label1.Text = res.GetString("Label1.Text")
 37 
 38     End Sub
 39 End Class
 ========================================================================
匯入參考
  1 Imports System.Resources
  2 Imports System.Threading
  3 Imports System.Globalization

定義資源檔管理員
  7     Dim res As System.Resources.ResourceManager '資源檔管理員
 
表單開啟讀取
 9     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 10 
 11         res = New Resources.ResourceManager("WindowsApplication2.Form1", Me.GetType().Assembly)
 12 
 13     End Sub
 
中文切換按鈕
 15     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 16         '中文顯示按鈕
 17         Thread.CurrentThread.CurrentCulture = New CultureInfo("zh-TW")
 18         Thread.CurrentThread.CurrentUICulture = New CultureInfo("zh-TW")
 19 
 20         Me.Text = res.GetString("$this.Text")
 21         Button1.Text = res.GetString("Button1.Text")
 22         Button2.Text = res.GetString("Button2.Text")
 23         Label1.Text = res.GetString("Label1.Text")
 24 
 25     End Sub
 
英文切換按鈕
 27     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
 28         '英文顯示按鈕
 29 
 30         Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US")
 31         Thread.CurrentThread.CurrentUICulture = New CultureInfo("en-US")
 32 
 33         Me.Text = res.GetString("$this.Text")
 34         Button1.Text = res.GetString("Button1.Text")
 35         Button2.Text = res.GetString("Button2.Text")
 36         Label1.Text = res.GetString("Label1.Text")
 37 
 38     End Sub 
 
 
檔案下載:VB.Net多國語系切換 

留言

這個網誌中的熱門文章

[Excel]將圖片放置於儲存格中

[軟體]AUTOCAD關於開啟圖面時,字型找不到,而要手動指定成 chineset.shx 字型檔問題

[MS SQL]查詢資料庫中每個資料表之列數與資料表大小(容量)資訊。Get size of all tables in database