如何管理多语言组件解决方案在 Visual C# 中

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 816175
本文已归档。它按“原样”提供,并且不再更新。
概要
本文介绍如何管理使用 Visual C#.net 或 Visual C# 2005年的多语言组件解决方案。
更多信息

要求

下面的列表概述了建议的硬件、 软件、 网络的基础结构和所需的服务包:
  • 下列操作系统之一:
    • Microsoft Windows 2000 专业版 (或服务器)
    • Microsoft 与.net 框架安装的 Windows XP 专业版
    • Windows 2003 Server
  • Microsoft Visual Studio.net 或 Microsoft Visual Studio 2005。
  • Microsoft SQL Server 7.0 版或更高版本与罗斯文数据库。
本文假定您熟悉下列主题:
  • 实现继承
  • Windows 窗体
  • ADO.NET
Back to the top

管理多语言的组件解决方案

本文介绍了如何创建一个包含以下三个项目的解决方案:
  • 在其他两个项目类中使用方法的 Visual C# Windows 应用程序。
  • Visual Basic.net 或 Visual Basic 2005 库项目的可访问 NorthWind 数据库,并返回数据集。
  • 已接受的字符串对象 ArrayList 并返回单个字符串的连接通过使用 StringBuilder 类的实例方法的 Visual C# 类库项目。
若要创建一个 Visual C# Windows 窗体的外壳应用程序在执行以下步骤的解决方案:
  1. 单击 开始,指向 程序,然后单击 Microsoft Visual Studio.net (对于 Visual Studio.net 2002)、 Microsoft Visual Studio.net 2003年 (对于 Microsoft Visual Studio.net 2003),或 (对于 Microsoft Visual Studio 2005) 的 Microsoft Visual Studio 2005
  2. 单击 Microsoft Visual Studio.netMicrosoft Visual Studio 2005
  3. 单击 新建项目,然后单击 Visual C# 项目

    注意在 Visual 有关 Studio 的 2005 年请单击 Visual C#
  4. 模板 框中,单击 Windows 应用程序
  5. 名称 字段中键入 HowToMultiComp,然后单击 确定
  6. 创建项目时,请确保解决方案资源管理器是可见的。如果不可见解决方案资源管理器中按下 CTRL + ALT + L。

    现在,您 Visual C# Windows 窗体应用程序的外壳命名 HowToMultiComp 解决方案中。
若要进行多语言组件解决方案添加一个 Visual C# 类库,然后添加 Visual Basic.net 或 Visual Basic 2005 类库。

首先,必须将其添加 vba 类库。若要向 Visual Basic 类库,请按照下列步骤操作:
  1. 在解决方案资源管理器中,用鼠标右键单击 解决方案 HowToMultiComp,指向 添加,然后单击 新建项目
  2. 单击 Visual Basic 项目

    注意在 Visual 有关 Studio 的 2005 年单击 Visual Basic
  3. 模板 框中,单击 类库
  4. 名称 框中键入 NWClassLib,然后单击 确定

    在 Visual Basic.net 或 Visual Basic 2005 类库被添加到解决方案中。

    Class1.vb 现在已在编辑器中打开窗口。
  5. 下面的命名空间中的类的简写点表示法访问顶部添加两个 导入 指令:
    Imports System.DataImports System.Data.SqlClient
  6. 创建,并使用罗斯文产品表中数据填充 数据集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;integrated security=sspi"))	sqlDS.Fill(ds)	return dsEnd Function
创建 Visual C# 类库。若要这样做,请按照下列步骤操作:
  1. 在解决方案资源管理器中,用鼠标右键单击 解决方案 HowToMultiComp,指向 添加,然后单击 新建项目
  2. 单击 Visual C# 项目

    注意在 Visual 有关 Studio 的 2005 年请单击 Visual C#
  3. 模板 框中,单击 类库
  4. 名称 框中键入 SBClassLib,然后单击 确定

    在 Visual C# 类库添加到解决方案中。

    在编辑器窗口中 Class1.cs 随即打开。
  5. Class1.cs 代码示例获取 System.Text 命名空间和 System.Collections 命名空间中对类的简略表示法点表示法访问的顶部添加下面的 using 指令:
    using System.Text;using System.Collections;
  6. 公共类的 Class1,连接 ArrayList 中包含的单个字符串将使用 StringBuilder 类的实例中添加以下代码:
    public static String BuildString(ArrayList arlStrings){	StringBuilder sb = new StringBuilder();		foreach(String s in arlStrings)	{			sb.Append(s);			sb.Append(", ");	}	return sb.ToString();}
现在,您可以创建使用该组件的 Visual C# Windows 窗体应用程序。若要创建 Visual C# Windows 窗体应用程序,请按照下列步骤:
  1. 若要将对类库的两个组件的引用,请按照下列步骤操作:
    1. 在解决方案资源管理器中,用鼠标右键单击 引用HowToMultiComp,下,然后单击 添加引用
    2. 项目,下按下并按住 CTRL 键、 单击 NWClassLib,然后单击 SBClassLib
    3. 单击与选定的两个项目的 选择
    4. 当这两个项目出现在该 选定组件 框中,单击 确定

      项目现在为窗口应用程序列在 $ 参照下。
  2. Form1.cs 是在设计视图中打开。如果在 Form1.cs 尚未打开,双击 Form1.cs 解决方案资源管理器中。
  3. 按 CTRL + ALT + X 若要打开工具箱,然后单击 Windows 窗体
  4. 拖到该的窗体中将一个按钮,然后按 F4 以访问属性页按钮。
  5. 更改为 显示产品Text 属性设置。
  6. 添加另一个的按钮,然后更改 文本 属性,以 生成字符串
  7. 拖到该的窗体上拖动 DataGrid 控件,然后将其放在按钮的下面。调整 DataGrid 控件的大小,使其填充窗体上剩余的区域。
  8. 双击 显示产品。visual Studio.net 自动创建 Click 事件处理程序。
  9. 添加以下代码将 Click 事件处理程序:
    dataGrid1.DataSource = NWClassLib.Class1.GetProducts().Tables[0];
    此代码将 数据网格数据源 属性设置为已由类库的 GetProducts 方法返回在 数据集
  10. 若要进行第二个 Click 事件处理程序双击 生成字符串
  11. 下面的代码将在数据网格中的第一行中的每个单元格的内容带到单元格 7,向上然后将内容添加到 ArrayListArrayList 然后传递到 MessageBox 函数中返回一个字符串,它将出现在 SBClassLibrary 方法。类的实例不必要,因为该方法通过使用 static 关键字声明了更早版本。

    将下面的代码添加到 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

完成代码列表

完成列表 (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

完成列表 (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

完成列表 (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));		}	}}
注意在 Visual Studio 2005 中更改代码。您在创建 Windows 窗体项目时 Visual C# 一个窗体向项目添加默认情况下。此窗体是名为 Form1。表示窗体的两个文件称为 Form1.cs 和 Form1.designer.cs。可以在 Form1.cs 中编写您的代码。在 Windows 窗体设计器写入实现的所有操作的代码通过将控件添加执行的 Sesigner.cs 文件。 在 Visual C# 2005年中的 Windows 窗体的设计器有关的详细信息,请访问下面的 Microsoft 网站:Back to the top

验证它工作的

  1. 按 f5 键以在调试模式下运行该应用程序。
  2. 当窗体出现时单击 获取产品

    数据网格 将显示罗斯文产品表中的所有产品。
  3. 单击 生成 String

    会显示一个消息框显示通过其索引为 7 (从零开始) 单元格的串联在第一个行的单元格的内容。
  4. 按 SHIFT + F5 停止调试并返回到 Visual Studio.net。
Back to the top

故障排除

请确保您正在使用两种语言时不要会混淆语法。visual C# 是非常特定,错误消息并不总是为提示或直观在 Visual Basic.net 中或在 Viusal Basic 2005 中错误消息。因此,您可能需要添加书签语言等效的.net 框架软件开发工具包,若要解决这些困难的部分。MS 帮助中找到下面的帮助主题:
ms:help://MS.VCC/MS.MSDNVS/vsintro7/html/vxgrfLanguageEquivalents.htm
Back to the top
参考
有关详细的信息,请访问下面的 MSDN 网站:Back to the top

属性

文章 ID:816175 - 上次审阅时间:01/17/2015 06:53:27 - 修订版本: 2.5

Microsoft Visual C# 2005 Express Edition, Microsoft Visual C# .NET 2003 标准版, Microsoft Visual C# .NET 2002 标准版

  • kbnosurvey kbarchive kbmt kbhowtomaster kbinterop kbappdev kbhowto KB816175 KbMtzh
反馈