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:
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).
Clique em Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005 .
Clique em Novo projecto e, em seguida, clique em Visual C# Projects
Nota No Visual Studio 2005, clique em Visual C# .
Em modelos , clique em Aplicação do Windows .
No campo nome , escreva HowToMultiComp e, em seguida, clique em OK .
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:
No Solution Explorer, clique com o botão direito do rato solução 'HowToMultiComp' , aponte para Adicionar e, em seguida, clique em Novo projecto .
Clique em projectos do Visual Basic .
Nota No Visual Studio 2005, clique em Visual Basic .
Em modelos , clique em Biblioteca de classes .
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.
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
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:
No Solution Explorer, clique com o botão direito do rato solução 'HowToMultiComp' , aponte para Adicionar e, em seguida, clique em Novo projecto .
Clique em Visual C# Projects .
Nota No Visual Studio 2005, clique em Visual C# .
Em modelos , clique em Biblioteca de classes .
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.
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;
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:
Para adicionar referências a dois componentes de biblioteca de classes, siga estes passos:
No Solution Explorer, clique com o botão direito do rato em referências em HowToMultiComp e, em seguida, clique em Add Reference .
Em projectos , prima e mantenha premida a tecla CTRL , clique em NWClassLib e, em seguida, clique em SBClassLib .
Com ambos os projectos seleccionados, clique em Seleccionar .
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.
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.
Prima CTRL + ALT + X para abrir a caixa de ferramentas e, em seguida, clique em Windows Forms .
Arraste um botão para o formulário e, em seguida, prima F4 para aceder a página de propriedades do botão.
Altere a definição da propriedade texto para Mostrar produtos .
Adicionar outro botão e, em seguida, alterar o texto de propriedade para Criar cadeia de caracteres .
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.
Faça duplo clique em Mostrar produtos . Visual Studio .NET cria automaticamente um processador de evento Click .
Adicione o seguinte código o processador de evento Click :
este código define a propriedade origem de dados de DataGrid para DataSet que foi devolvido pelo método GetProducts da biblioteca de classes.
Para criar um segundo processador de eventos clique , faça duplo clique Criar cadeia de caracteres .
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));
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
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();
}
}
}
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:
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:
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
Obrigado! Os seus comentários são utilizados para ajudar-nos a melhorar o conteúdo do nosso suporte. Para obter mais opções de assistência, visite a Home Page de Ajuda e Suporte.