Çok dilli Visual Studio 2005 veya Visual Studio. NET'te Windows Forms çözümleri yönetme hakkında

Makale çevirileri Makale çevirileri
Makale numarası: 315838 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, küçük, çok dilde bir Windows uygulaması oluşturulması gösterilmiştir. Ana uygulama Visual Basic 2005 veya Visual Basic. NET'te yerleşik olarak bulunur. Bu Visual Basic uygulamasını bir Visual C# sınıf kitaplığı'kullanan birden çok dil başvurusu ve uygulama devralma göstermek için bileşen.

Gereksinimler

Aşağıdaki listede, gereksinim duyacağınız donanım, yazılım, ağ altyapısı ve hizmet paketleri önerilmektedir:
  • Microsoft Windows 2000 Professional, Microsoft Windows 2000 Server, Microsoft Windows XP Professional veya Microsoft Windows XP Server yüklenmiş Microsoft .NET Framework
  • Microsoft Data Engine (MSDE) veya Microsoft SQL Server 7.0 veya sonrası Northwind veritabanı
Bu makalede, aşağıdaki konularda bilgi sahibi olduğunuz varsayılmaktadır:
  • Uygulama devralma
  • Windows Formları
  • Microsoft ADO.NET

Çok dilli bir Windows uygulaması oluşturma

Bu adımlar, küçük, çok dilde bir Windows uygulaması oluşturma konusunda gösterilmektedir. Bir düğmeyi tıklattığınızda, bir DataGrid denetiminde Northwind veritabanındaki tüm ürünleri de görüntüleyebilirsiniz.
  1. Bir Visual Basic Windows Application proje aşağıdaki gibi oluşturursunuz:
    1. Microsoft Visual Studio .NET veya Visual Studio 2005'ı başlatın ve sonra da New Project ' i tıklatın.
    2. Project Types altında Visual Basic Projeleri) tıklatın. Şablonları altında Windows uygulaması) tıklatın. Proje MultiLangHowTo yeniden adlandırın ve sonra Tamam ' ı tıklatın.

      NotVisual Basic, Visual Studio 2005'te Project Types altında tıklatın.
  2. Solution Explorer (Çözüm Gezgini) penceresinde görünür olduğundan emin olun. Yüklü değilse, Görünüm menüsünden Solution Explorer ' ı tıklatın.
  3. Artık MultiLangHowTo adlı bir çözümünde bir Visual Basic .NET veya Visual Basic 2005 ve Windows Forms uygulaması Kabuk vardır. Bu çok dilli bir çözüm için bir Visual C# sınıf kitaplığı'eklemeniz gerekir.

    Solution Explorer (Çözüm Gezgini) penceresinde, MultiLangHowTo sağ tıklatın, Ekle işaret ve sonra da New Project ' i tıklatın. Project Types altında Visual C# Projects ' ı tıklatın. Şablonları altında Sınıf kitaplığı ' nı tıklatın. Sınıf kitaplığı NWClassLib yeniden adlandırın. Bu sınıf kitaplığı çözümü eklemek için Tamam ' ı tıklatın.

    Not Visual Studio 2005'te, Visual C#Project Types altında'ni tıklatın.
  4. Class1.cs düzenleyici penceresinde görüntülenir. Aşağıdaki ad alanı bildirimi, bu pencerenin en üstüne ekleyin. Bu bildirimleri oluşturabilir ve bir DataSet nesnesi doldurmak için çeşitli sınıf erişmenize olanak.
    using System.Data;
    using System.Data.SqlClient;
    					
  5. Class1 yöntemi yerine aşağıdaki kodu oluşturur ve Northwind Ürünler tablosundan veriler içeren bir DataSet doldurur:
    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;
    } 
    						
    Not: geliştirme sisteminiz farklı bir SQL bağlantı dizesi gerekebilir. Sorunları oluşursa, sistem yöneticinize başvurun.
  6. Şimdi, Visual Basic Windows formları oluşturabilirsiniz uygulama bu bileşen tüketir. Form1.vb zaten Tasarım görünümünde açık olması. Tersi durumda, Solution Explorer penceresinde Form1.vb çift tıklatın.
  7. Bir Düğme denetimi ve bir DataGrid denetimi forma aşağıdaki şekilde ekleyin:
    1. Görünüm menüsünden araç kutusunu açmak için araç ' ı tıklatın. Alternatif olarak, CTRL + ALT + X tuşlarına basabilirsiniz araç kutusunu açmak için birleşim anahtarı.
    2. Araç kutusunda, Windows Forms ' ı tıklatın.
    3. Bir Düğme) denetimi, forma ekleyin.
    4. Düğme denetimin özellik sayfasına erişmek için F4 tuşuna basın. Metin özelliği, Products Göster değiştirin.
    5. DataGrid denetimi forma ekleyin.
  8. Bir proje başvurusu NWClassLib bileşeni aşağıdaki şekilde ekleyin:
    1. Solution Explorer (Çözüm Gezgini) penceresinde, altında MultiLangHowTo, Başvurular ' ı sağ tıklatın ve Add Reference</a1>'ı tıklatın.
    2. Projeler sekmesinde NWClassLib çift tıklatın. Seçili bileşenler</a1> liste kutusunda NWClassLib görüntülendiğine dikkat edin.
    3. Tamam ' ı tıklatın. Windows uygulama için NWClassLibReferences altında görüntülendiğine dikkat edin.
  9. Düğmeyi çift tıklatın. Visual Studio. NET'in, bir tıklatın olay işleyicisi otomatik olarak oluşturur. Tıklatın olay işleyicisine aşağıdaki kodu ekleyin:
    Dim objNW As New NWClassLib.Class1()
            DataGrid1.DataSource = objNW.GetProducts.Tables(0)
    					

Kod dökümü tamamlayın.

Class1.cs olmayan devralma örneği

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;
        } 
    }
}
				

Class1.cs devralma örneği

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 System.Windows.Forms.Form devralma

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
				
Not Visual Basic 2005 kodunu değiştirmeniz gerekir. Windows Forms bir proje oluşturduğunuzda, varsayılan olarak, Visual Basic projesinin iki dosya oluşturur. Formun adı Form1 verilirse, formun temsil eden iki dosya Form1.vb ve Form1.Designer.vb olarak adlandırılır. Kodu, Form1.vb dosyasında yazın. Windows Forms Designer kod Form1.Designer.vb dosyaya yazar. Windows Forms Designer kısmi anahtar Form1 uygulamasının iki ayrı dosyaya bölmek için kullanır. Bu davranış, kodunuzu interspersed designer tarafından üretilen kod engeller.

Yeni Visual Basic 2005 dil geliştirmeleri hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/ms379584(vs.80).aspx
Kısmi sınıfları ve Windows Forms Tasarımcısı hakkında daha fazla bilgi için aşağıdaki MSDN Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/ms171843.aspx

WebForm1.vb NWClassLib.Class1 devralma

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
				

It Works That doğrulayın.

  1. Uygulama hata ayıklama modunda çalıştırmak için F5 tuşuna basın.
  2. Form görüntülendiğinde, Products Göster'i tıklatın. DataGrid tüm ürünleri Northwind Ürünler tablosundan görüntüler.
  3. ÜST KRKT + F5 tuş bileşimini hata ayıklama durmasına ve Visual Studio dönmek için Ek Yardım düğmesini tıklatın.

Çok dilli devralma göstermek için gerekli adımları

Birden çok dil devralma göstermek için <a0></a0>, örnek biraz değiştirmeniz gerekir. Sınıf kitaplığı örneğini oluşturmak yerine bileşeni, uygulama buradan alır.

Form1 sınıfı, şu anda System.Windows.Forms.Form sınıfından devralır. Microsoft .NET birden çok devralma desteklemediğinden, sınıf kitaplığı bileşeni devralmak üzere NWClassLib.Class1 sınıfına Windows.Forms.Form sınıfı devralma taşımanız gerekir.

Not: ıt bir kullanıcı arabirimi sınıfı, bir <a0>Veri Bağlayıcısı</a0> bileşenindeki devralmak için n-katmanl? mimari yararlı değildir. Ancak, başka bir özelliğini birden çok dil çözüm yönetimi gibi kolayca göstermek için örnek değiştirebilirsiniz.
  1. Visual C# değiştirmeden önce sınıf kitaplığı System.Windows.Forms.Form ad boşluğuna başvuru ekleme kodu.
  2. Solution Explorer (Çözüm Gezgini) penceresinde, altında NWClassLib, Başvurular ' ı sağ tıklatın ve Add Reference</a1>'ı tıklatın.
  3. .NET</a0> sekmesinde, System.Windows.Forms.dll çift tıklatın. Seçili bileşenler</a1> liste kutusunda System.Windows.Forms.dll görüntülendiğine dikkat edin.
  4. Tamam ' ı tıklatın. Sınıf kitaplığı bileşeniniz System.Windows.FormReferences altında görüntülendiğine dikkat edin.
  5. Form sınıfının devralmak için Class1 bildirimi değiştirin:
    public class Class1 : System.Windows.Forms.Form
    					
  6. Visual Basic .NET veya Visual Basic 2005 Form1 sınıfı Class1 devralmak hazır. Class1System.Windows.Forms.Form sınıfı devralır, çünkü MultiLangHowTo.Form1 sınıfı, Class1 devralma yoluyla da System.Windows.Forms.Form devralmaz.

    Veritabanı Düzenleyicisi penceresinde, Form1.vb ' ı tıklatın. Sınıf bildirimi altında System.Windows.Forms.FormNWClassLib.Class1 ile değiştirin. Güncelleştirilmiş kodu aşağıdaki gibi görünmelidir:
    Inherits NWClassLib.Class1
    					
  7. Ilk satırı tıklatın olay işleyicisindeki gibi aç?klama:
    'Dim objNW As New NWClassLib.Class1()
    						
    Not: Ayrıca, imleci satıra yerleştirin ve sonra kod satırını açıklama için araç çubuğundaki Seçili satırları açıklama ' yı tıklatın.
  8. Ikinci satır şu şekilde değiştirin:
    DataGrid1.DataSource = GetProducts.Tables(0)
    					
  9. <a0>Verify That It Works</a0> bölümündeki adımları yineleyin.

SORUN GİDERME

  • Iki dil ile çalışırken, sözdizimi yanıltır daha kolaydır. Visual C# sözdizimi hatası, geniş bir kenar boşluğu izin vermiyor. Ayrıca, Visual C# .NET, hata iletileri her zaman istemi olarak veya Visual Basic .NET, hata iletileri olarak sezgisel olmayan. Bu sorun gidermek için Microsoft .NET Framework Software Development Kit'e (SDK) "Dil eşdeğerleri" bölümüne bakın:
    Dil eşdeğerleri
    http://msdn2.microsoft.com/en-us/library/czz35az4(vs.71).aspx
  • Uygulama devralma kullanmak isterseniz, nesne yönelimli bir ilkeden tasarım incelemek ve önceden uygulama mimarisi göz önünde bulundurun. Genel hata kodu bir sınıf kitaplığı'nda devralmak için gereken bir ana uygulamasında koymaktır. Bu senaryoda, ana uygulamaya bir sınıf kitaplığı, döngüsel bir bağımlılık nedeniyle devralamaz. Örneğin, NWClassLib projede MultiLangHowTo projeye bir başvuru eklemek deneyin. Aşağıdaki hata iletisini alıyorsunuz:
    'MultiLangHowTo' başvuru eklenemedi. Bu proje başvuru olarak ekleme döngüsel bağımlılık neden olur.

Referanslar

Daha fazla bilgi için aşağıdaki Microsoft Web sitelerine bakın:
Temel Instincts: Bölüm 1. NET'te devralma kullanma
http://msdn.microsoft.com/en-us/magazine/cc135806.aspx

Temel Instincts: Devralma. NET'te, Bölüm 2 kullanma
http://msdn.microsoft.com/en-us/magazine/cc301744.aspx

Özellikler

Makale numarası: 315838 - Last Review: 24 Şubat 2014 Pazartesi - Gözden geçirme: 4.8
Bu makaledeki bilginin uygulandığı durum:
  • 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
Anahtar Kelimeler: 
kbnosurvey kbarchive kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB315838 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:315838

Geri Bildirim Ver

 

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