Cómo administrar una solución de componente multilenguaje en Visual C#

Seleccione idioma Seleccione idioma
Id. de artículo: 816175 - Ver los productos a los que se aplica este artículo
Para obtener una versión de Microsoft Visual Basic .NET de este artículo, consulte 317702.

En esta tarea


Expandir todo | Contraer todo

En esta página

Resumen

En este artículo describe cómo administrar una solución de componente multilingüe mediante Visual C# .NET o Visual C# 2005.

Más información

Requisitos

En la lista siguiente se describe el hardware, el software, la infraestructura de red y los Service Packs recomendados que necesitará:
  • Uno de los siguientes sistemas operativos:
    • Microsoft Windows 2000 Professional (o Server)
    • Microsoft Windows XP Professional con .NET Framework instalado
    • Microsoft Windows Server 2003
  • Microsoft Visual Studio .NET o Microsoft Visual Studio 2005.
  • Microsoft SQL Server versión 7.0 o posterior con Northwind base de datos.
En este artículo se supone que está familiarizado con los temas siguientes:
  • Herencia de implementación
  • Formularios Windows Forms
  • ADO.NET
Back to the top

Administrar una solución de componente multilingüe

En este artículo describe cómo crear una solución que contiene los siguientes tres proyectos:
  • Una aplicación de Windows de Visual C# que utiliza métodos de las clases de proyecto de dos.
  • Un proyecto de Visual Basic .NET o biblioteca de Visual Basic 2005 que tiene acceso a la base de datos NorthWind y devuelve un conjunto de datos.
  • Un proyecto de biblioteca de clases de Visual C# que tiene un método que toma una ArrayList de objetos de cadena y devuelve una sola cadena que se concatena con una instancia de la clase StringBuilder .
Para crear el shell de un Windows Forms de Visual C# aplicación en una solución, siga estos pasos:
  1. Haga clic en Inicio , seleccione programas y, a continuación, elija Visual Studio.NET (para Visual Studio .NET 2002), Visual Studio .NET 2003 (para Microsoft Visual Studio .NET 2003) o Microsoft Visual Studio 2005 (para Microsoft Visual Studio 2005).
  2. Haga clic en Microsoft Visual Studio .NET o Microsoft Visual Studio 2005 .
  3. Haga clic en Nuevo proyecto y, a continuación, haga clic en Proyectos de Visual C#

    Nota En Visual Studio 2005, haga clic en C# .
  4. En plantillas , haga clic en Aplicación para Windows .
  5. En el campo nombre , escriba HowToMultiComp y, a continuación, haga clic en Aceptar .
  6. Cuando se crea el proyecto, asegúrese de que el Explorador de soluciones está visible. Si el Explorador de soluciones no está visible, presione CTRL + ALT + L.

    Ahora tiene el shell de una aplicación de formularios Windows Forms de Visual C# en una solución denominada HowToMultiComp.
Para crear una solución de componente multilenguaje, agregar una biblioteca de clases C# Visual y, a continuación, agregar un Visual Basic .NET o la biblioteca de clases de Visual Basic 2005.

Primero se debe agregar la biblioteca de clases de Visual Basic. Para agregar la biblioteca de clases de Visual Basic, siga estos pasos:
  1. En el Explorador de soluciones, haga clic con el botón secundario en 'HowToMultiComp' de la solución , elija Agregar y, a continuación, haga clic en Nuevo proyecto .
  2. Haga clic en proyectos de Visual Basic .

    Nota En Visual Studio 2005, haga clic en Visual Basic .
  3. En plantillas , haga clic en Biblioteca de clases .
  4. En el cuadro nombre , escriba NWClassLib y, a continuación, haga clic en Aceptar .

    El Visual Basic .NET o la biblioteca de clases de Visual Basic 2005 se agrega a la solución.

    Class1.vb ahora está abierto en el Editor de ventana.
  5. Agregue dos directivas Imports al principio tener acceso de notación de punto de taquigrafía a clases en los siguientes espacios de nombres:
    Imports System.Data
    Imports System.Data.SqlClient
  6. Para crear y llenar un DataSet con los datos de la tabla de productos de Northwind, agregue el método siguiente a Class1 (quizás tenga que ajustar la cadena de conexión para su equipo):
    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
    
Crear la biblioteca de clases de C# Visual. Para ello, siga estos pasos:
  1. En el Explorador de soluciones, haga clic con el botón secundario en 'HowToMultiComp' de la solución , elija Agregar y, a continuación, haga clic en Nuevo proyecto .
  2. Haga clic en proyectos de Visual C# .

    Nota En Visual Studio 2005, haga clic en C# .
  3. En plantillas , haga clic en Biblioteca de clases .
  4. En el cuadro nombre , escriba SBClassLib y, a continuación, haga clic en Aceptar .

    Biblioteca de clases de C# Visual se agrega a la solución.

    Class1.cs ahora está abierto en la ventana del editor.
  5. Agregue las directivas using siguientes al principio del ejemplo de código de Class1.cs para tener acceso de notación de punto de taquigrafía a las clases en el espacio de nombres System.Text y el espacio de nombres System.Collections :
    using System.Text;
    using System.Collections;
  6. Agregue el código siguiente en public class Class1 , que utiliza una instancia de la clase StringBuilder para concatenar una cadena única que está en una ArrayList :
    public static String BuildString(ArrayList arlStrings)
    {
    	StringBuilder sb = new StringBuilder();
    	
    	foreach(String s in arlStrings)
    	{
    			sb.Append(s);
    			sb.Append(", ");
    	}
    	return sb.ToString();
    }
Ahora puede crear la aplicación de formularios Windows Forms de Visual C# que consume este componente. Para crear formularios el Visual C# Windows Forms aplicación, siga estos pasos:
  1. Para agregar referencias a dos componentes de biblioteca de clases, siga estos pasos:
    1. En el Explorador de soluciones, haga clic con el botón secundario en referencias en HowToMultiComp y, a continuación, haga clic en Agregar referencia .
    2. En proyectos , presione y mantenga presionada la tecla CTRL , haga clic en NWClassLib y, a continuación, haga clic en SBClassLib .
    3. Con ambos proyectos seleccionados, haga clic en Seleccionar .
    4. Cuando los proyectos de ambos aparecen en la seleccionado componentes , haga clic en Aceptar .

      Los proyectos se muestran bajo referencias para la aplicación de ventana.
  2. Form1.cs está abierto en la vista Diseño. Si Form1.cs en no está ya abierto, haga doble clic en Form1.cs en el Explorador de soluciones.
  3. Presione CTRL + ALT + X para abrir el cuadro de herramientas y, a continuación, haga clic en Formularios Windows Forms .
  4. Arrastre un botón al formulario y, a continuación, presione F4 para obtener acceso a la página de propiedades para el botón.
  5. Cambiar la configuración de propiedad de texto para Mostrar los productos .
  6. Agregue otro botón y, a continuación, cambie el texto de propiedad para Generar la cadena .
  7. Arrastre un control DataGrid al formulario y, a continuación, colóquelo debajo de los botones. Cambiar el tamaño del control DataGrid para que ocupe el área restante en el formulario.
  8. Haga doble clic en Mostrar los productos . Visual Studio .NET crea automáticamente un controlador de eventos Click .
  9. Agregue el código siguiente el controlador del evento Click :
    dataGrid1.DataSource = NWClassLib.Class1.GetProducts().Tables[0];
    este código establece la propiedad DataSource del DataGrid al DataSet devuelto por el método GetProducts de la biblioteca de clases.
  10. Para crear un segundo controlador de eventos Click , haga doble clic Generar cadena .
  11. El siguiente código toma el contenido de cada celda de la primera fila del DataGrid hasta la celda 7 y, a continuación, agrega el contenido con ArrayList . A continuación, ArrayList se pasa al método SBClassLibrary , que devuelve una cadena que aparece en una función de cuadro de mensaje . Una instancia de la clase no es necesaria, porque el método se ha declarado anteriormente mediante la palabra clave static.

    Agregue el código siguiente al controlador de 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

Lista de código completa

Lista (Class1.vb) de código completo

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

Lista (Class1.cs) de código completo

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

Lista (Form1.cs) de código completo

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 El código debe cambiarse en Visual Studio 2005. Cuando se crea un proyecto de formularios Windows Forms, C# agrega un formulario al proyecto de forma predeterminada. Este formulario se denomina Form1. Los dos archivos que representan el formulario se denominan Form1.cs y Form1.Designer.cs. Escribir el código en Form1.cs. El archivo de Sesigner.cs es donde el Diseñador de Windows Forms escribe el código que implementa todas las acciones que realizó agregando controles. Para obtener más información acerca el Diseñador de Windows Forms en Visual C# 2005, visite el siguiente sitio Web de Microsoft:
http://msdn2.microsoft.com/en-us/library/ms173077.aspx
Back to the top

Comprobar que funciona

  1. Presione F5 para ejecutar la aplicación en modo depuración.
  2. Cuando aparezca el formulario, haga clic en obtener productos .

    DataGrid muestra todos los productos de la tabla de productos de Northwind.
  3. Haga clic en Generar cadena .

    Aparece un cuadro de mensaje que muestra el contenido concatenado de las celdas de la primera fila de la celda con un índice de 7 (basada en cero).
  4. Presione MAYÚSCULAS+F5 para detener la depuración y volver a Visual Studio. NET.
Back to the top

Solución de problemas

Asegúrese de que no confunda la sintaxis cuando se trabaja con dos idiomas. Visual C# es muy concreto, y los mensajes de error no siempre como símbolo del sistema o tan intuitivo como los mensajes de error en Visual Basic .NET o en Viusal Basic 2005. Por lo tanto, quizás desee marcador "Equivalentes del lenguaje" sección del kit de desarrollo de software de .NET Framework para solucionar estos problemas. Busque el siguiente tema de Ayuda en Ayuda de Microsoft:
MS:help://MS.VCC/MS.MSDNVS/vsintro7/html/vxgrfLanguageEquivalents.htm
Back to the top

Referencias

Para obtener más información, visite el siguiente sitio Web MSDN:
Crear una solución de proyecto múltiple
http://msdn2.microsoft.com/en-us/library/aa265251(VS.60).aspx
Back to the top

Propiedades

Id. de artículo: 816175 - Última revisión: miércoles, 16 de mayo de 2007 - Versión: 2.5
La información de este artículo se refiere a:
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Palabras clave: 
kbmt kbhowtomaster kbinterop kbappdev kbhowto KB816175 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 816175

Enviar comentarios

 

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