Como gerir uma solução de componente multilingue no Visual C#

Traduções de Artigos Traduções de Artigos
Artigo: 816175 - Ver produtos para os quais este artigo se aplica.
Para obter uma Microsoft Visual Basic .NET versão deste artigo, consulte 317702.

NESTA TAREFA


Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo descreve como gerir uma solução de componente multilingue a utilizar o Visual C# .NET ou Visual C# 2005.

Mais Informação

Requisitos

A lista seguinte descreve o hardware recomendado, software, infra-estrutura de rede e service packs são necessários:
  • Um dos seguintes sistemas operativos:
    • Microsoft Windows 2000 Professional (ou servidor)
    • Microsoft Windows XP Professional com o .NET Framework instalado
    • Microsoft Windows Server 2003
  • Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005.
  • Microsoft SQL Server versão 7.0 ou posterior com base base de dados.
Este artigo pressupõe que está familiarizado com os seguintes tópicos:
  • Herança de implementação
  • Formulários do Windows
  • ADO.NET
Back to the top

Gerir uma solução de componente multilingue

Este artigo descreve como criar uma solução que contém os seguintes três projectos:
  • Uma aplicação do Visual C# Windows que utiliza métodos de outras classes de duas projecto.
  • Um projecto de Visual Basic .NET ou Visual Basic 2005 Library que acede a base de dados Adamastor e devolve um DataSet.
  • Um projecto do Visual C# classe biblioteca que tem um método que utiliza um ArrayList de objectos de cadeia e devolve uma cadeia única que é concatenada utilizando uma instância da classe StringBuilder .
Para criar a shell de um Visual C# Windows Forms aplicação numa solução, siga estes passos:
  1. Clique em Iniciar , aponte para programas e, em seguida, aponte para Microsoft Visual Studio .NET (para o Visual Studio .NET 2002), Microsoft Visual Studio .NET 2003 (para o Microsoft Visual Studio .NET 2003) ou Microsoft Visual Studio 2005 (para o Microsoft Visual Studio 2005).
  2. Clique em Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005 .
  3. Clique em Novo projecto e, em seguida, clique em Visual C# Projects

    Nota No Visual Studio 2005, clique em Visual C# .
  4. Em modelos , clique em Aplicação do Windows .
  5. No campo nome , escreva HowToMultiComp e, em seguida, clique em OK .
  6. Quando o projecto é criado, certifique-se de que Solution Explorer está visível. Se Solution Explorer não estiver visível, prima CTRL + ALT + L.

    Tem agora a shell de uma aplicação Visual C# Windows Forms numa solução denominada HowToMultiComp.
Para criar uma solução de componente multilingue, adicione uma biblioteca de classes do C# Visual e, em seguida, adicionar um Visual Basic .NET ou biblioteca de classes do Visual Basic 2005.

Biblioteca de classes do Visual Basic deve ser adicionada pela primeira vez. Para adicionar a biblioteca de classes do Visual Basic, siga estes passos:
  1. No Solution Explorer, clique com o botão direito do rato solução 'HowToMultiComp' , aponte para Adicionar e, em seguida, clique em Novo projecto .
  2. Clique em projectos do Visual Basic .

    Nota No Visual Studio 2005, clique em Visual Basic .
  3. Em modelos , clique em Biblioteca de classes .
  4. Na caixa nome , escreva NWClassLib e, em seguida, clique em OK .

    O Visual Basic .NET ou biblioteca de classes do Visual Basic 2005 é adicionada à solução.

    Class1.VB agora está aberto o Editor de janela.
  5. Adicionar duas directivas de importação na parte superior para aceder abreviada ponto notação classes espaços de nomes seguinte:
    Imports System.Data
    Imports System.Data.SqlClient
  6. Para criar e preencher um DataSet com os dados da tabela de produtos de base de dados Adamastor, adicione o seguinte método para Aula1 (poderá ter de ajustar a cadeia de ligação do computador):
    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 ds
    End Function
    
Crie a biblioteca de classe C# Visual. Para o fazer, siga estes passos:
  1. No Solution Explorer, clique com o botão direito do rato solução 'HowToMultiComp' , aponte para Adicionar e, em seguida, clique em Novo projecto .
  2. Clique em Visual C# Projects .

    Nota No Visual Studio 2005, clique em Visual C# .
  3. Em modelos , clique em Biblioteca de classes .
  4. Na caixa nome , escreva SBClassLib e, em seguida, clique em OK .

    Biblioteca de classes C# Visual é adicionada a solução.

    Class1.cs agora está aberto na janela do Editor.
  5. Adicionar as directivas de utilizar o seguinte na parte superior do exemplo de código Class1.cs aceder abreviada ponto notação as classes no espaço de nomes System.Text e o espaço de nomes System.Collections :
    using System.Text;
    using System.Collections;
  6. Adicione o código seguinte na classe pública Aula1 , que utiliza uma instância da classe StringBuilder para concatenar uma cadeia única contida num ArrayList :
    public static String BuildString(ArrayList arlStrings)
    {
    	StringBuilder sb = new StringBuilder();
    	
    	foreach(String s in arlStrings)
    	{
    			sb.Append(s);
    			sb.Append(", ");
    	}
    	return sb.ToString();
    }
Agora é possível criar a aplicação do Visual C# Windows Forms que consome este componente. Para criar o Visual C# Windows Forms aplicação, siga estes passos:
  1. Para adicionar referências a dois componentes de biblioteca de classes, siga estes passos:
    1. No Solution Explorer, clique com o botão direito do rato em referências em HowToMultiComp e, em seguida, clique em Add Reference .
    2. Em projectos , prima e mantenha premida a tecla CTRL , clique em NWClassLib e, em seguida, clique em SBClassLib .
    3. Com ambos os projectos seleccionados, clique em Seleccionar .
    4. Quando ambos os projectos aparecem no seleccionado componentes , clique em OK .

      Os projectos agora estão listados em referências para a aplicação do Windows.
  2. Form1.cs é aberta na vista Estrutura. Se Form1.cs in ainda não estiver aberta, faça duplo clique em Form1.cs no Solution Explorer.
  3. Prima CTRL + ALT + X para abrir a caixa de ferramentas e, em seguida, clique em Windows Forms .
  4. Arraste um botão para o formulário e, em seguida, prima F4 para aceder a página de propriedades do botão.
  5. Altere a definição da propriedade texto para Mostrar produtos .
  6. Adicionar outro botão e, em seguida, alterar o texto de propriedade para Criar cadeia de caracteres .
  7. Arraste o controlo DataGrid do formulário e, em seguida, largue-o abaixo dos botões. Redimensione o controlo DataGrid poder preencher a área restante do formulário.
  8. Faça duplo clique em Mostrar produtos . Visual Studio .NET cria automaticamente um processador de evento Click .
  9. Adicione o seguinte código o processador de evento Click :
    dataGrid1.DataSource = NWClassLib.Class1.GetProducts().Tables[0];
    este código define a propriedade origem de dados de DataGrid para DataSet que foi devolvido pelo método GetProducts da biblioteca de classes.
  10. Para criar um segundo processador de eventos clique , faça duplo clique Criar cadeia de caracteres .
  11. O seguinte código demora o conteúdo de cada célula na primeira linha da DataGrid até à célula 7 e, em seguida, adiciona o conteúdo a um ArrayList . A ArrayList , em seguida, é transmitido para o método SBClassLibrary , que devolve uma cadeia que aparece numa função MessageBox . Uma instância da classe não é necessária, porque o método foi declarado anterior utilizando a palavra-chave estática.

    Adicione o seguinte código ao processador de eventos clique :
    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

Concluir lista de código

Concluir código lista (Class1.vb)

Imports System.Data
Imports System.Data.SqlClient

Public 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 Function
End Class
Back to the top

Concluir código lista (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

Concluir código lista (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 O código deve ser alterado no Visual Studio 2005. Quando cria um projecto de Windows Forms, Visual C# adiciona um formulário ao projecto por predefinição. Este formulário é denominado Form1. Os dois ficheiros que representam o formulário são denominados Form1.cs e Form1.Designer.cs. Tem de escrever o código no Form1.cs. O ficheiro Sesigner.cs é onde o Windows Forms Designer escreve o código que implementa todas as acções efectuadas, adicionando controlos. Para obter mais informações sobre o Windows Forms Designer no Visual C# 2005, visite o seguinte Web site da Microsoft:
http://msdn2.microsoft.com/en-us/library/ms173077.aspx
Back to the top

Verificar se funciona

  1. Prima F5 para executar a aplicação no modo de depuração.
  2. Quando for apresentado o formulário, clique em obter produtos .

    DataGrid apresenta todos os produtos da tabela de produtos de base de dados Adamastor.
  3. Clique em criar cadeia de caracteres .

    Aparece uma caixa de mensagem mostra o conteúdo concatenado das células da primeira linha, até à célula com um índice de 7 (zero como base).
  4. Prima SHIFT + F5 para parar a depuração e voltar ao Visual Studio. NET.
Back to the top

Resolução de problemas

Certifique-se de que não confundir a sintaxe quando se trabalha com dois idiomas. O Visual C# é muito específica e as mensagens de erro nem sempre estão como linha de comandos ou como intuitiva como as mensagens de erro no Visual Basic .NET ou no Viusal Basic 2005. Por conseguinte, poderá pretender marcador "Idioma Equivalents" secção do .NET Framework software development kit para resolver estes problemas. Localize o seguinte tópico de ajuda na ajuda do MS:
MS:help://MS.VCC/MS.MSDNVS/vsintro7/html/vxgrfLanguageEquivalents.htm
Back to the top

Referências

Para mais informações, visite o seguinte Web site da MSDN:
Criar uma solução múltipla-projecto
http://msdn2.microsoft.com/en-us/library/aa265251(VS.60).aspx
Back to the top

Propriedades

Artigo: 816175 - Última revisão: 16 de maio de 2007 - Revisão: 2.5
A informação contida neste artigo aplica-se a:
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Palavras-chave: 
kbmt kbhowtomaster kbinterop kbappdev kbhowto KB816175 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 816175

Submeter comentários

 

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