Làm th? nào đ? qu?n l? các gi?i pháp Windows Forms multilanguage trong Visual Studio.NET hay trong Visual Studio 2005

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 315838 - Xem s?n ph?m mà bài này áp d?ng vào.
Bài vi?t này đ? đư?c lưu tr?. Bài vi?t đư?c cung c?p "nguyên tr?ng" và s? không c?n đư?c c?p nh?t n?a.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Bài vi?t này ch?ng t? làm th? nào đ? t?o ra m?t nh?, Multilanguage c?a s? ?ng d?ng. ?ng d?ng chính đư?c xây d?ng trong Visual Cơ b?n.NET hay Visual Basic 2005. ?ng d?ng Visual Basic này s? d?ng m?t Visual C# l?p Library thành ph?n đ? minh h?a multilanguage tham kh?o và th?c hi?n th?a k?.

Yêu c?u

Danh sách sau v?ch ra đư?c đ? ngh? ph?n c?ng, ph?n m?m, h? t?ng m?ng, và gói d?ch v? mà b?n c?n:
  • Microsoft Windows 2000 Professional, Microsoft Windows 2000 H? ph?c v?, Microsoft Windows XP Professional ho?c Microsoft Windows XP Server v?i Microsoft.NET Framework cài đ?t
  • Microsoft d? li?u đ?ng cơ (MSDE) ho?c Microsoft SQL Server 7.0 hay sau đó v?i cơ s? d? li?u Northwind
Bài vi?t này gi? đ?nh r?ng b?n đ? quen thu?c v?i sau các ch? đ?:
  • Th?a k? vi?c th?c hi?n
  • Windows Forms
  • Microsoft ADO.NET

T?o m?t ?ng d?ng Windows Multilanguage

Các bư?c này ch?ng minh làm th? nào đ? t?o ra m?t nh?, multilanguage C?a s? ?ng d?ng. Khi b?n b?m m?t nút, b?n có th? xem t?t c? s?n ph?m t? Northwind cơ s? d? li?u trong m?t DataGrid ki?m soát.
  1. T?o m?t d? án ?ng d?ng Windows Visual Basic như sau:
    1. B?t đ?u Microsoft Visual Studio.NET ho?c Microsoft Visual Studio 2005, và sau đó nh?p vào D? án m?i.
    2. Dư?i Các lo?i d? án, b?m Visual Basic d? án. Dư?i M?u, b?m ?ng d?ng Windows. Đ?i tên d? án MultiLangHowTo, và sau đó b?m Ok.

      Lưu ? Trong Visual Studio 2005, nh?p vào Visual Basic dư?i Các lo?i d? án.
  2. Ch?c ch?n r?ng c?a s? Explorer gi?i pháp này có th? nh?n th?y. N?u không, h?y nh?p vào Gi?i pháp Explorer trên các Xem tr?nh đơn.
  3. Bây gi? b?n có v? m?t Visual Basic.NET ho?c Visual Basic 2005 Windows Forms ?ng d?ng trong m?t gi?i pháp đ?t tên là MultiLangHowTo. Đ? làm đi?u này m?t Multilanguage gi?i pháp, b?n ph?i thêm m?t Visual C# l?p Library.

    Trong c?a s? gi?i pháp Explorer, b?m chu?t ph?i vào MultiLangHowTo, đi?m đ?n Thêm, sau đó b?m D? án m?i. Dư?i Các lo?i d? án, b?m Visual C# các d? án. Dư?i M?u, b?m Thư vi?n l?p. Đ?i tên thư vi?n l?p NWClassLib. Nh?p vào Ok thêm thư vi?n l?p này cho các gi?i pháp.

    Lưu ? Trong Visual Studio 2005, nh?p vào Visual C# dư?i Các lo?i d? án.
  4. Class1.CS xu?t hi?n trong c?a s? tr?nh so?n th?o. Thêm dư?i đây không gian tên t? khai trên cùng c?a c?a s? này. Các khai báo cho phép b?n đ? truy c?p vào các l?p h?c khác nhau do đó b?n có th? t?o ra và đi?n vào m?t S? li?u đ?i tư?ng.
    using System.Data;
    using System.Data.SqlClient;
    					
  5. Thay th? các Class1 phương pháp v?i m? sau đây, mà t?o ra và đi?n vào m?t S? li?u v?i t?t c? các d? li?u t? s?n ph?m Northwind b?ng:
    public static DataSet GetProducts()
    {
       DataSet ds = new DataSet();
       SqlDataAdapter sqlDS = new SqlDataAdapter(
          "select * from products", new SqlConnection(
          "server=(local);database=northwind;Integrated Security=SSPI"));
       sqlDS.Fill(ds);
       return ds;
    } 
    						
    LƯU ?: H? th?ng phát tri?n c?a b?n có th? yêu c?u m?t k?t n?i khác nhau c?a SQL chu?i. N?u v?n đ? x?y ra, h?i ngư?i qu?n tr? h? th?ng c?a b?n.
  6. Bây gi? b?n có th? xây d?ng các h?nh th?c Windows Visual Basic ?ng d?ng s? tiêu th? c?u ph?n này. Form1.VB nên m? Theo quan đi?m thi?t k?. N?u không, b?m đúp vào Form1.VB trong c?a s? Explorer gi?i pháp.
  7. Thêm m?t Nút ki?m soát và m?t DataGrid ki?m soát các h?nh th?c như sau:
    1. Trên các Xem tr?nh đơn, nh?p vào H?p công c? đ? m? h?p công c?. Thay phiên, b?n có th? nh?n CTRL + ALT + X t? h?p phím đ? m? h?p công c?.
    2. Trong h?p công c?, nh?p Windows Forms.
    3. Thêm m?t Nút ki?m soát m?u.
    4. B?m phím F4 đ? truy c?p vào trang thu?c tính cho các Nút ki?m soát. Thay đ?i các Văn b?n b?t đ?ng s?n đ? Hi?n th? các s?n ph?m.
    5. Thêm m?t DataGrid ki?m soát m?u.
  8. Thêm m?t d? án tài li?u tham kh?o đ? các thành ph?n NWClassLib như sau:
    1. Trong c?a s? gi?i pháp Explorer, dư?i MultiLangHowTo, b?m chu?t ph?i vào Tài li?u tham kh?o, sau đó b?m Thêm tài li?u tham kh?o.
    2. Trên các Các d? án tab, b?m đúp NWClassLib. Nh?n th?y r?ng NWClassLib xu?t hi?n trong các Các thành ph?n đư?c ch?n h?p danh sách.
    3. Nh?p vào Ok. Nh?n th?y r?ng NWClassLib xu?t hi?n dư?i Tài li?u tham kh?o cho ?ng d?ng Windows.
  9. Double-Click vào nút. Visual Studio.NET t? đ?ng t?o ra m?t Nh?p vào s? ki?n x? l?. Thêm m? sau đây đ? các Nh?p vào x? l? s? ki?n:
    Dim objNW As New NWClassLib.Class1()
            DataGrid1.DataSource = objNW.GetProducts.Tables(0)
    					

Danh sách m? đ?y đ?

Ví d? không th?a k? Class1.CS

using System;
using System.Data;
using System.Data.SqlClient;

namespace NWClassLib
{
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    public class Class1
    {
        public static DataSet GetProducts()
        {
            DataSet ds = new DataSet();
            SqlDataAdapter sqlDS = new SqlDataAdapter(
                "select * from products", new SqlConnection(
                "server=(local);database=northwind;Integrated Security=SSPI"));
            sqlDS.Fill(ds);
            return ds;
        } 
    }
}
				

Ví d? th?a k? Class1.CS

using System;
using System.Data;
using System.Data.SqlClient;

namespace NWClassLib
{
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    public class Class1 : System.Windows.Forms.Form
    {
        public static DataSet GetProducts()
        {
            DataSet ds = new DataSet();
            SqlDataAdapter sqlDS = new SqlDataAdapter(
                "select * from products", new SqlConnection(
                "(local);database=northwind;uid=sa"));
            sqlDS.Fill(ds);
            return ds;
        }
    }
}
				

Form1.VB k? th?a System.Windows.Forms.Form

Public Class Form1
    Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

    Public Sub New()
        MyBase.New()

        'The Windows Form Designer requires this call.
        InitializeComponent()

        'Add any initialization after the InitializeComponent() call.

    End Sub

    'Form overrides Dispose to clean up the component list.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'The Windows Form Designer requires this code.
    Private components As System.ComponentModel.IContainer

    'The Windows Form Designer requires this procedure.
    'You can use the Windows Form Designer to modify it. 
    'However, do not use the Code editor to modify it.
    Friend WithEvents Button1 As System.Windows.Forms.Button
    Friend WithEvents DataGrid1 As System.Windows.Forms.DataGrid
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.Button1 = New System.Windows.Forms.Button()
        Me.DataGrid1 = New System.Windows.Forms.DataGrid()
        CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).BeginInit()
        Me.SuspendLayout()
        '
        'Button1
        '
        Me.Button1.Location = New System.Drawing.Point(24, 16)
        Me.Button1.Name = "Button1"
        Me.Button1.Size = New System.Drawing.Size(96, 23)
        Me.Button1.TabIndex = 0
        Me.Button1.Text = "Show Products"
        '
        'DataGrid1
        '
        Me.DataGrid1.DataMember = ""
        Me.DataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText
        Me.DataGrid1.Location = New System.Drawing.Point(24, 48)
        Me.DataGrid1.Name = "DataGrid1"
        Me.DataGrid1.Size = New System.Drawing.Size(256, 200)
        Me.DataGrid1.TabIndex = 1
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(292, 266)
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.DataGrid1, Me.Button1})
        Me.Name = "Form1"
        Me.Text = "Form1"
        CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).EndInit()
        Me.ResumeLayout(False)

    End Sub

#End Region

    Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
        Dim objNW As New NWClassLib.Class1()
        DataGrid1.DataSource = objNW.GetProducts.Tables(0)
    End Sub
End Class
				
Lưu ? B?n ph?i thay đ?i m? trong Visual Basic 2005. Theo m?c đ?nh, Visual Basic t?o hai t?p tin cho d? án khi b?n t?o m?t d? án Windows Forms. N?u m?u đư?c đ?t theo tên Form1, hai t?p tin mà đ?i di?n cho các h?nh th?c đư?c đ?t tên Form1.vb và Form1.Designer.vb. B?n vi?t m? trong t?p tin Form1.vb. Các nhà thi?t k? các h?nh th?c Windows vi?t m? trong t?p tin Form1.Designer.vb. Các nhà thi?t k? các h?nh th?c Windows s? d?ng các t? khóa m?t ph?n đ? phân chia th?c hi?n Form1 thành hai t?p tin riêng bi?t. Hành vi này ngăn c?n các nhà thi?t k? t?o ra m? đư?c xen k? v?i m? c?a b?n.

Đ? bi?t thêm chi ti?t v? c?i ti?n m?i ngôn ng? Visual Basic 2005, ghé thăm Web site sau c?a Microsoft Developer Network (MSDN):
http://msdn2.Microsoft.com/en-US/Library/ms379584 (vs.80) .aspx
Đ? bi?t thêm chi ti?t v? các l?p h?c ph?n và các nhà thi?t k? các h?nh th?c Windows, h?y truy c?p MSDN Web site sau:
http://msdn2.Microsoft.com/en-US/Library/ms171843.aspx

WebForm1.vb k? th?a NWClassLib.Class1

Public Class Form1
    Inherits NWClassLib.Class1

#Region " Windows Form Designer generated code "

    Public Sub New()
        MyBase.New()

        'The Windows Form Designer requires this call.
        InitializeComponent()

        'Add any initialization after the InitializeComponent() call.

    End Sub

    'Form overrides Dispose to clean up the component list.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'The Windows Form Designer requires this code.
    Private components As System.ComponentModel.IContainer

    'The Windows Form Designer requires this procedure.
    'You can use the Windows Form Designer to modify it. 
    'However, do not use the Code editor to modify it.
    Friend WithEvents Button1 As System.Windows.Forms.Button
    Friend WithEvents DataGrid1 As System.Windows.Forms.DataGrid
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.Button1 = New System.Windows.Forms.Button()
        Me.DataGrid1 = New System.Windows.Forms.DataGrid()
        CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).BeginInit()
        Me.SuspendLayout()
        '
        'Button1
        '
        Me.Button1.Location = New System.Drawing.Point(24, 16)
        Me.Button1.Name = "Button1"
        Me.Button1.Size = New System.Drawing.Size(96, 23)
        Me.Button1.TabIndex = 0
        Me.Button1.Text = "Show Products"
        '
        'DataGrid1
        '
        Me.DataGrid1.DataMember = ""
        Me.DataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText
        Me.DataGrid1.Location = New System.Drawing.Point(24, 48)
        Me.DataGrid1.Name = "DataGrid1"
        Me.DataGrid1.Size = New System.Drawing.Size(256, 200)
        Me.DataGrid1.TabIndex = 1
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(292, 266)
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.DataGrid1, Me.Button1})
        Me.Name = "Form1"
        Me.Text = "Form1"
        CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).EndInit()
        Me.ResumeLayout(False)

    End Sub

#End Region

    Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
        'Dim objNW As New NWClassLib.Class1()
        DataGrid1.DataSource = GetProducts.Tables(0)
    End Sub
End Class
				

Xác minh r?ng nó ho?t đ?ng

  1. B?m phím F5 đ? ch?y các ?ng d?ng trong g? l?i ch? đ?.
  2. Khi các h?nh th?c xu?t hi?n, nh?p vào Hi?n th? các s?n ph?m. Các DataGrid hi?n th? t?t c? các s?n ph?m t? s?n ph?m Northwind b?ng.
  3. B?m t? h?p phím SHIFT + F5 đ? ngăn ch?n g? l?i và đ? Quay l?i Visual Studio.

Các bư?c đ? ch?ng minh Multilanguage th?a k?

Đ? minh h?a multilanguage k? th?a, b?n ph?i s?a đ?i các m?u hơi. Thay v? c?a vi?c t?o ra m?t th? hi?n c?a thư vi?n l?p thành ph?n, các ?ng d?ng th?a hư?ng t? nó.

Các Form1 l?p hi?n đang th?a hư?ng t? các System.Windows.Forms.form l?p h?c. B?i v? Microsoft.NET không h? tr? nhi?u k? th?a, b?n ph?i di chuy?n các Windows.Forms.form l?p th?a k? đ? các NWClassLib.Class1 l?p h?c đ? k? th?a các thành ph?n thư vi?n l?p.

LƯU ?: Nó không ph?i là n-tier ki?n trúc arfer th?a k? m?t ngư?i s? d?ng giao di?n l?p trong m?t thành ph?n c?p d? li?u. Tuy nhiên, b?n có th? s?a đ?i m?u như sau đ?n m?t cách d? dàng ch?ng minh m?t khía c?nh khác c?a gi?i pháp multilanguage qu?n l?.
  1. Thêm m?t tham chi?u đ?n các System.Windows.Forms.form không gian tên trong thư vi?n l?p h?c trư?c khi b?n s?a đ?i Visual C# M?.
  2. Trong c?a s? gi?i pháp Explorer, dư?i NWClassLib, b?m chu?t ph?i vào Tài li?u tham kh?o, sau đó b?m Thêm tài li?u tham kh?o.
  3. Trên các .NET tab, b?m đúp vào System.Windows.Forms.dll. Nh?n th?y r?ng System.Windows.Forms.dll xu?t hi?n trong các Các thành ph?n đư?c ch?n h?p danh sách.
  4. Nh?p vào Ok. Nh?n th?y r?ng System.Windows.form xu?t hi?n dư?i Tài li?u tham kh?o trong thành ph?n thư vi?n l?p c?a b?n.
  5. S?a đ?i các Class1 tuyên b? th?a k? các H?nh th?c l?p:
    public class Class1 : System.Windows.Forms.Form
    					
  6. Visual Basic.NET ho?c Visual Basic 2005 Form1 l?p h?c là bây gi? đ? s?n sàng đ? k? th?a Class1. B?i v? Class1 th?a hư?ng các System.Windows.Forms.form l?p h?c, các MultiLangHowTo.Form1 l?p h?c c?ng s? th?a k? System.Windows.Forms.form thông qua th?a k? c?a Class1.

    Trong c?a s? so?n th?o, b?m Form1.VB. Theo tuyên b? l?p h?c, thay th? System.Windows.Forms.form v?i NWClassLib.Class1. M? C?p Nh?t s? xu?t hi?n như sau:
    Inherits NWClassLib.Class1
    					
  7. B?nh lu?n trong d?ng đ?u tiên trong các Nh?p vào s? ki?n x? l? như sau:
    'Dim objNW As New NWClassLib.Class1()
    						
    LƯU ?: Thay phiên, b?n có th? đ?t con tr? trên dây và sau đó nh?p vàoB?nh lu?n ra các d?ng đư?c ch?n trên thanh công c? đ? b?nh lu?n trong m?t d?ng m?.
  8. S?a đ?i d?ng th? hai như sau:
    DataGrid1.DataSource = GetProducts.Tables(0)
    					
  9. L?p l?i các bư?c trong các Xác minh r?ng nó ho?t đ?ng keá tieáp.

Gi?i đáp th?c m?c

  • Khi b?n làm vi?c v?i hai ngôn ng?, nó r?t d? gây nh?m l?n cú pháp. Visual C# cú pháp không cho phép m?t biên đ? r?ng c?a các l?i. Hơn n?a, Visual C#.NET l?i thông đi?p là không ph?i luôn luôn như nhanh chóng ho?c tr?c quan như Visual Basic.Thông báo l?i m?ng. Đ? kh?c ph?c nh?ng khó khăn, tham kh?o "Ngôn ng? tương đương" ph?n c?a Microsoft.NET Framework ph?n m?m B? phát tri?n (SDK):
    Ngôn ng? tương đương
    http://msdn2.Microsoft.com/en-US/Library/czz35az4 (vs.71) .aspx
  • N?u b?n mu?n s? d?ng th?a k? th?c hi?n, nghiên c?u hư?ng đ?i tư?ng nguyên t?c c?a thi?t k?, và xem xét đơn ki?n trúc trong trư?c. M?t l?i thư?ng là đ? đ?t m? trong m?t ?ng d?ng chính mà b?n c?n ph?i k? th?a trong m?t thư vi?n l?p. Trong trư?ng h?p này, b?n không th? th?a k? chính ?ng d?ng trong m?t thư vi?n l?p v? thông tư quan h? ph? thu?c. Ví d?, c? g?ng thêm m?t tham chi?u đ?n các d? án MultiLangHowTo trong d? án NWClassLib. B?n nh?n đư?c thông báo l?i sau:
    M?t tham chi?u đ?n Không th? thêm 'MultiLangHowTo'. Thêm d? án này s? là m?t tài li?u tham kh?o gây ra m?t s? ph? thu?c tr?n.

THAM KH?O

Đ? bi?t thêm chi ti?t, h?y tham kh?o đ?n trang Web Microsoft sau đây các trang web:
B?n năng cơ b?n: S? d?ng th?a k? trong.NET, ph?n 1
http://MSDN.Microsoft.com/en-US/Magazine/cc135806.aspx

B?n năng cơ b?n: S? d?ng th?a k? trong.NET, ph?n 2
http://MSDN.Microsoft.com/en-US/Magazine/cc301744.aspx

Thu?c tính

ID c?a bài: 315838 - L?n xem xét sau cùng: 21 Tháng Hai 2014 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
T? khóa: 
kbnosurvey kbarchive kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315838 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:315838

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com