Come gestire una soluzione componente multilingue in Visual C#

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

816175
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
Sommario
In questo articolo viene descritto come gestire una soluzione componente multilingue utilizzando Visual C# .NET o Visual C# 2005.
Informazioni

Requisiti

Nell'elenco seguente sono indicati hardware, software, infrastruttura di rete e i service pack necessari:
  • Uno dei seguenti sistemi operativi:
    • Microsoft Windows 2000 Professional (o server)
    • Microsoft Windows XP Professional con installato .NET Framework
    • Microsoft Windows Server 2003
  • Microsoft Visual Studio .NET o Microsoft Visual Studio 2005.
  • Microsoft SQL Server versione 7.0 o versione successiva con Northwind database.
In questo articolo si presume la conoscenza dei seguenti argomenti:
  • Ereditarietà dell'implementazione
  • Windows Form
  • ADO.NET
Back to the top

Gestire una soluzione componente multilingue

In questo articolo viene descritto come creare una soluzione che contiene i seguenti tre progetti:
  • Un'applicazione di Windows in Visual C# che utilizza i metodi nelle classi del progetto di due.
  • Un progetto di Visual Basic .NET o Visual Basic 2005 libreria che accede al database NorthWind e restituisce un oggetto DataSet.
  • Un progetto di libreria di classe di Visual C# che dispone di un metodo che accetta un ArrayList di oggetti stringa e restituisce una singola stringa viene concatenata utilizzando un'istanza della classe StringBuilder .
Per creare la shell di un Windows Form di Visual C# dell'applicazione in una soluzione, attenendosi alla procedura seguente:
  1. Fare clic su Start , scegliere programmi e quindi scegliere Microsoft Visual Studio .NET (per Visual Studio .NET 2002), Microsoft Visual Studio .NET 2003 (per Microsoft Visual Studio .NET 2003) o Microsoft Visual Studio 2005 (per Microsoft Visual Studio 2005).
  2. Fare clic su Microsoft Visual Studio .NET o Microsoft Visual Studio 2005 .
  3. Fare clic su Nuovo progetto e quindi su Progetti di Visual C#

    Nota In Visual Studio 2005, fare clic su C# .
  4. In modelli , fare clic su Applicazione Windows .
  5. Nel campo nome digitare HowToMultiComp e quindi fare clic su OK .
  6. Quando viene creato il progetto, assicurarsi che Esplora soluzioni è visibile. Se Esplora soluzioni non è visibile, è necessario premere CTRL + ALT + L.

    Ora è la shell di un'applicazione Windows Form di Visual C# in una soluzione denominata HowToMultiComp.
Per creare una soluzione componente multilingue, aggiungere una libreria di classi C# Visual e quindi aggiungere un Visual Basic .NET o di una libreria di classi Visual Basic 2005.

La libreria di classi Visual Basic deve essere aggiunto prima. Per aggiungere la libreria di classi Visual Basic, attenersi alla seguente procedura:
  1. In Esplora soluzioni, fare clic con il pulsante destro del mouse soluzioni 'HowToMultiComp' , scegliere Aggiungi , quindi Nuovo progetto .
  2. Scegliere progetti di Visual Basic .

    Nota Nella finestra di Visual Studio 2005, fare clic su Visual Basic .
  3. Fare clic su Libreria di classi in modelli .
  4. Nella casella nome digitare NWClassLib e quindi fare clic su OK .

    Visual Basic .NET o libreria di classi Visual Basic 2005 viene aggiunto alla soluzione.

    Class1.vb ora è aperto l'editor finestra.
  5. Aggiungere due direttive Imports nella parte superiore ad accedere notazione abbreviata punto classi seguenti spazi dei nomi:
    Imports System.DataImports System.Data.SqlClient
  6. Per creare e riempire un DataSet con i dati dalla tabella di prodotti di Northwind, aggiungere il metodo seguente a Class1 (potrebbe essere necessario modificare la stringa di connessione per il computer):
    Public Shared Function GetProducts() As DataSet	Dim ds As New DataSet()	Dim sqlDS As New SqlDataAdapter("select * from products", New SqlConnection("server=<network address of instance of SQL Server>;database=northwind;integrated security=sspi"))	sqlDS.Fill(ds)	return dsEnd Function
Creare la libreria di classi C# Visual. Per effettuare questa operazione, attenersi alla seguente procedura:
  1. In Esplora soluzioni, fare clic con il pulsante destro del mouse soluzioni 'HowToMultiComp' , scegliere Aggiungi , quindi Nuovo progetto .
  2. Fare clic su progetti di Visual C# .

    Nota In Visual Studio 2005, fare clic su C# .
  3. Fare clic su Libreria di classi in modelli .
  4. Nella casella nome digitare SBClassLib e quindi fare clic su OK .

    Libreria di classi Visual di C# viene aggiunto alla soluzione.

    Class1.cs ora è aperta nella finestra dell'editor.
  5. Aggiungere le seguenti direttive using nella parte superiore dell'esempio di codice Class1.cs ad accedere notazione abbreviata punto le classi in spazio dei nomi System.Text e spazio dei nomi System.Collections :
    using System.Text;using System.Collections;
  6. Aggiungere il codice riportato di seguito nella classe pubblica Class1 , che utilizza un'istanza della classe StringBuilder per concatenare una singola stringa che è contenuta in un ArrayList :
    public static String BuildString(ArrayList arlStrings){	StringBuilder sb = new StringBuilder();		foreach(String s in arlStrings)	{			sb.Append(s);			sb.Append(", ");	}	return sb.ToString();}
È ora possibile creare l'applicazione di Windows Form di Visual C# che utilizza questo componente. Applicazione di form per creare il Windows Visual C#, attenersi alla seguente procedura:
  1. Per aggiungere riferimenti a due componenti della libreria di classi, attenersi alla seguente procedura:
    1. In Esplora soluzioni fare clic con il pulsante destro del mouse su riferimenti in HowToMultiComp e quindi fare clic su Aggiungi riferimento .
    2. In progetti , premere e tenere premuto il tasto CTRL , fare clic su NWClassLib e quindi fare clic su SBClassLib .
    3. Entrambi i progetti selezionati, fare clic su Seleziona .
    4. Quando sono visualizzati entrambi i progetti nel selezionati componenti fare clic su OK .

      I progetti sono ora elencati in finestra di riferimenti per l'applicazione di finestra.
  2. Form1.cs è aperto in visualizzazione struttura. Se Form1.cs in non è già aperto, fare doppio clic su Form1.cs , in Esplora soluzioni.
  3. Premere CTRL + ALT + X per aprire la casella degli strumenti e quindi fare clic su Windows Form .
  4. Trascinare un pulsante nel form e quindi premere F4 per accedere alla pagina proprietà per il pulsante.
  5. Consente di modificare l'impostazione della proprietà testo Mostra prodotti .
  6. Aggiungere un altro pulsante e quindi modificare il testo della proprietà in Stringa genera .
  7. Trascinare un controllo DataGrid sul form e quindi rilasciarlo sotto i pulsanti. Consente di ridimensionare il controllo DataGrid in modo che riempie l'area rimanente nel modulo.
  8. Fare doppio clic su Visualizza prodotti . Visual Studio .NET crea automaticamente un gestore eventi Click .
  9. Aggiungere il codice seguente il gestore dell'evento Click :
    dataGrid1.DataSource = NWClassLib.Class1.GetProducts().Tables[0];
    il codice imposta la proprietà DataSource del DataGrid il DataSet che è stato restituito dal metodo GetProducts della libreria di classi.
  10. Per creare un gestore eventi Click secondo, fare doppio clic Genera stringa .
  11. Il codice riportato di seguito richiede il contenuto di ogni cella nella prima riga del DataGrid fino a 7 di cella e quindi aggiunge il contenuto a un ArrayList . L' ArrayList viene quindi passato al metodo SBClassLibrary , che restituisce una stringa che viene visualizzato in una funzione MessageBox . Un'istanza della classe non è necessaria, poiché il metodo è stato dichiarato in precedenza utilizzando la parola chiave static.

    Aggiungere il codice seguente al gestore dell'evento Click :
    ArrayList arl = new ArrayList();for(int i = 0; i <= 8; i++)	arl.Add(dataGrid1[0, i].ToString());MessageBox.Show(SBClassLib.Class1.BuildString(arl));
Back to the top

Elenco completo del codice

Completamento codice elenco (Class1.vb)

Imports System.DataImports System.Data.SqlClientPublic Class Class1    Public Shared Function GetProducts() As DataSet        Dim ds As New DataSet()        Dim sqlDS As New SqlDataAdapter("select * from products", New SqlConnection("server=<network address of instance of SQL Server>;database=northwind;uid=sa"))        sqlDS.Fill(ds)        Return ds    End FunctionEnd Class
Back to the top

Completamento codice elenco (Class1.cs)

using System;using System.Text;using System.Collections;namespace SBClassLib{	public class Class1	{		public Class1()		{					}		public static String BuildString(ArrayList arlStrings)		{			StringBuilder sb = new StringBuilder();			foreach(String s in arlStrings)			{				sb.Append(s);				sb.Append(", ");			}			return sb.ToString();		}	}}
Back to the top

Completamento codice elenco (Form1.cs)

using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;namespace HowToMultiComp{		public class Form1 : System.Windows.Forms.Form	{		private System.Windows.Forms.Button button1;		private System.Windows.Forms.Button button2;		private System.Windows.Forms.DataGrid dataGrid1;				private System.ComponentModel.Container components = null;		public Form1()		{			InitializeComponent();		}		protected override void Dispose( bool disposing )		{			if( disposing )			{				if (components != null) 				{					components.Dispose();				}			}			base.Dispose( disposing );		}		private void InitializeComponent()		{			this.button1 = new System.Windows.Forms.Button();			this.button2 = new System.Windows.Forms.Button();			this.dataGrid1 = new System.Windows.Forms.DataGrid();			((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();			this.SuspendLayout();			// 			// button1			// 			this.button1.Name = "button1";			this.button1.Size = new System.Drawing.Size(104, 23);			this.button1.TabIndex = 0;			this.button1.Text = "Show Products";			this.button1.Click += new System.EventHandler(this.button1_Click);			// 			// button2			// 			this.button2.Location = new System.Drawing.Point(136, 0);			this.button2.Name = "button2";			this.button2.Size = new System.Drawing.Size(96, 23);			this.button2.TabIndex = 1;			this.button2.Text = "Build String";			this.button2.Click += new System.EventHandler(this.button2_Click);			// 			// dataGrid1			// 			this.dataGrid1.DataMember = "";			this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;			this.dataGrid1.Location = new System.Drawing.Point(0, 24);			this.dataGrid1.Name = "dataGrid1";			this.dataGrid1.Size = new System.Drawing.Size(296, 256);			this.dataGrid1.TabIndex = 2;			// 			// Form1			// 			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);			this.ClientSize = new System.Drawing.Size(292, 273);			this.Controls.AddRange(new System.Windows.Forms.Control[] {																		  this.dataGrid1,																		  this.button2,																		  this.button1});			this.Name = "Form1";			this.Text = "Form1";			((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();			this.ResumeLayout(false);		}		[STAThread]		static void Main() 		{			Application.Run(new Form1());		}		private void button1_Click(object sender, System.EventArgs e)		{			dataGrid1.DataSource = NWClassLib.Class1.GetProducts().Tables[0];		}		private void button2_Click(object sender, System.EventArgs e)		{			ArrayList arl = new ArrayList();			for(int i = 0; i <= 8; i++)				arl.Add(dataGrid1[0, i].ToString());			MessageBox.Show(SBClassLib.Class1.BuildString(arl));		}	}}
Nota Il codice deve essere modificato in Visual Studio 2005. Quando si crea un progetto Windows Form, Visual C# aggiunge un form al progetto per impostazione predefinita. Questo modulo denominato Form1. I due file che rappresentano il form sono denominati Form1.cs e Form1.Designer.cs. Il codice scritto in Form1.cs. Il file di Sesigner.cs è Progettazione Windows Form scrive il codice che implementa tutte le azioni eseguite mediante l'aggiunta di controlli. Per ulteriori informazioni su Progettazione Windows Form in Visual C# 2005, visitare il sito di Web di Microsoft:Back to the top

Verifica del funzionamento

  1. Premere F5 per eseguire l'applicazione in modalità di debug.
  2. Quando viene visualizzato il modulo, fare clic su Get prodotti .

    DataGrid Visualizza tutti i prodotti dalla tabella di prodotti di Northwind.
  3. Scegliere Genera stringa .

    Verrà visualizzata una finestra di messaggio che mostra il contenuto delle celle della prima riga, concatenato tramite la cella con un indice di 7 (in base zero).
  4. Premere MAIUSC + F5 per interrompere il debug e tornare a Visual Studio. NET.
Back to the top

Risoluzione dei problemi

Assicurarsi di non confondere la sintassi quando si lavora con due linguaggi. Visual C# è molto particolari, e i messaggi di errore non sono sempre come richiesta o intuitivo come come i messaggi di errore in Visual Basic .NET o in Viusal Basic 2005. Pertanto, è opportuno per il segnalibro "Language Equivalents" sezione di .NET Framework software development kit per risolvere questi problemi. Individuare l'argomento della Guida riportato di seguito nella Guida in linea di Microsoft:
MS:help://MS.VCC/MS.MSDNVS/vsintro7/HTML/vxgrfLanguageEquivalents.htm
Back to the top
Riferimenti
Per ulteriori informazioni, visitare il seguente sito Web MSDN:
Creazione di una soluzione Mutli-progetto
http://msdn2.microsoft.com/en-us/library/aa265251(VS.60).aspx
Back to the top

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 816175 - Ultima revisione: 01/17/2015 06:53:20 - Revisione: 2.5

  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • kbnosurvey kbarchive kbmt kbhowtomaster kbinterop kbappdev kbhowto KB816175 KbMtit
Feedback