ここでは、複数の言語を管理する方法について説明します。コンポーネント ソリューションの Visual C# を使用します。NET または Visual C# 2005年。
要件
推奨ハードウェアの一覧を以下に示します、ソフトウェア、ネットワーク インフラストラクチャ、および service pack は必要です。
- 以下のオペレーティング システムのいずれかです。
- Microsoft Windows 2000 Professional (またはサーバー)
- Microsoft Windows XP Professional には。NET Frameworkインストールされています。
- Microsoft Windows Server 2003
- マイクロソフトの Visual Studio。NET またはマイクロソフトの Visual Studio 2005。
- Microsoft SQL Server バージョン 7.0 以降と Northwindデータベースです。
この資料に精通していること前提としています、次のトピック:
には、トップ多言語コンポーネント ソリューションを管理します。
この資料の方法を含むソリューションを作成するのには次の 3 つのプロジェクト:
- メソッドを使用して、Visual C# Windows アプリケーションは、他の 2 つのプロジェクトのクラス。
- Visual Basic の。アクセス NET Visual Basic 2005年ライブラリ プロジェクト、NorthWind データベースとデータセットを返します。
- メソッドが、Visual C# クラス ライブラリ プロジェクトは、取得します。 ArrayList 返します string オブジェクトの 1 つの文字列がインスタンスを使用して連結、 StringBuilder クラスです。
シェルの Visual C# Windows フォームを作成するのにはアプリケーションでは、次の手順に従って、ソリューションをします。
- クリックしてください。 開始、ポイント プログラム、し、いずれかをポイント マイクロソフトの Visual Studio。NET (Visual Studio。NET 2002) で マイクロソフトの Visual Studio。NET 2003(Microsoft Visual Studio の。NET 2003)、または Microsoft Visual Studio 2005 (Microsoft Visual Studio は 2005年)。
- クリックしてください。 Microsoft VisualStudio します。NET または Microsoft Visual Studio 2005.
- クリックしてください。 新しいプロジェクト、しVisual C# プロジェクト
メモ Visual Studio 2005 年にをクリックします。 Visual C#. - 下にあります。 テンプレートをクリックしてWindows アプリケーション.
- で、 名前 フィールドの種類HowToMultiComp、し[OK].
- プロジェクトを作成すると、ソリューション エクスプ ローラーが表示されていることを確認します。場合ソリューションエクスプ ローラーが表示されていない、キーを押しますCTRL キーを押しながら ALT キーを押しながら L します。
ビジュアルのシェルを今すぐがあります。HowToMultiComp C# の Windows フォーム アプリケーションでは、ソリューションの名前。
多言語コンポーネント ソリューションを作成するには、視覚的なを追加します。C# クラス ライブラリにし、Visual Basic を追加します。NET または Visual Basic 2005年クラスライブラリです。
Visual Basic クラス ライブラリは、最初に追加する必要があります。追加するのにはVisual Basic クラス ライブラリで、次の手順を実行します。
- ソリューション エクスプ ローラーで右クリックします。ソリューション 'HowToMultiComp'、ポイント 追加、、をクリックして、 新しいプロジェクト.
- クリックしてください。 Visual Basic プロジェクト.
メモ Visual Studio 2005 年にをクリックします。 Visual Basic. - 下にあります。 テンプレートをクリックしてクラス ライブラリ.
- で、 名前 ボックスの種類NWClassLib、し [OK].
は、Visual Basic。NET または Visual Basic 2005年のクラス ライブラリを追加してには、ソリューションです。
Class1.vb ここでは、エディターで開いています。ウィンドウです。 - 2 つを追加します。 インポート ディレクティブ一番簡単ドット表記法をアクセスするのには次の名前空間内のクラスに。
Imports System.Data
Imports System.Data.SqlClient
- 作成すると、入力、 データセット 次の方法を Northwind 商品テーブルのデータを追加します。 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 ds
End Function
Visual の C# クラス ライブラリを作成します。これを行うには、次の手順を実行します。
- ソリューション エクスプ ローラーで右クリックします。ソリューション 'HowToMultiComp'、ポイント 追加、、をクリックして、 新しいプロジェクト.
- クリックしてください。 Visual C# プロジェクト.
メモ Visual Studio 2005 年にをクリックします。 Visual C#. - 下にあります。 テンプレートをクリックしてクラス ライブラリ.
- で、 名前 ボックスの種類SBClassLib、し [OK].
Visual C# クラス ライブラリは、ソリューションに追加されます。
Class1.cs ここで、[エディター] ウィンドウでは開かれています。 - 次を追加します。 ここで ディレクティブ Class1.cs コード サンプルの上部へショートハンド ドット表記クラスにアクセスするのでは System.Text 名前空間と、 System.Collections 名前空間:
using System.Text;
using System.Collections;
- 次のコードを追加します。 パブリック クラス Class1、、のインスタンスを使用して、 StringBuilder クラスに含まれる 1 つの文字列を連結するのには ArrayList:
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 フォーム アプリケーションを作成できます。このコンポーネントを使用します。画像の C# の Windows フォームを作成するのにはアプリケーションは、次の手順を実行します。
- 2 つのクラス ライブラリのコンポーネントへの参照を追加するには次の手順を実行します。
- ソリューション エクスプ ローラーで右クリックします。 参照 下にあります。 HowToMultiComp、、をクリックして、 参照を追加します。.
- 下にあります。 プロジェクトを押しながらキーを押しながらは、 CTRL キーを押し [キー] をクリックします NWClassLib、し SBClassLib.
- 両方のプロジェクトを選択をクリックします。 選択.
- 両方のプロジェクトを表示するときに、 選択しました。コンポーネント ボックスで、をクリックしてください [OK].
プロジェクトになりました[参照] ウィンドウが表示。
- Form1.cs をデザイン ビューで開いているです。場合は Form1.cs でまだ開き、ダブルクリック Form1.cs ソリューションエクスプ ローラー。
- 開くには ctrl キーと alt キーを押しながら X キーを押して、ツールボックスで、し Windowsフォーム.
- フォームにボタンをドラッグし、F4 キーを押しますボタンのプロパティ ページにアクセスするには。
- 変更は、 テキスト プロパティの値製品を表示します。.
- 別のボタンを追加し、変更を テキストプロパティ 文字列をビルドします。.
- ドラッグします。 データ グリッド フォーム、コントロールと次の下のボタンを削除します。サイズを変更する、データ グリッド 制御、残りの領域に入力できるように、フォームです。
- ダブルクリック 製品を表示します。.ビジュアルStudio します。NET を自動的に作成します。 クリックしてください。 イベント ハンドラーです。
- 次のコードを追加、 クリックしてください。 イベント ハンドラー:
dataGrid1.DataSource = NWClassLib.Class1.GetProducts().Tables[0];
この設定は、 データ ソース プロパティが データ グリッド するには データセット によって返された、 GetProducts クラス ライブラリのメソッドです。 - 作成するのには1 秒 クリックしてください。 イベント ハンドラーをダブルクリック 文字列をビルドします。.
- 各セルの内容を次のコードを実行、データ グリッドの最初の行セル 7 に入りに内容を追加します。 ArrayList.は、 ArrayList 後に渡されます、 SBClassLibrary メソッドは、表示される文字列を返しますが メッセージ ボックス 関数です。このクラスのインスタンスは必要ありませんので、メソッドは、static キーワードを使用して以前宣言されました。
次を追加します。コードは、 クリックしてください。 イベント ハンドラー:ArrayList arl = new ArrayList();
for(int i = 0; i <= 8; i++)
arl.Add(dataGrid1[0, i].ToString());
MessageBox.Show(SBClassLib.Class1.BuildString(arl));
には、トップ完全なコード リスト
(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 には、トップ(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();
}
}
}
には、トップ(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# 1 つのフォームがプロジェクトに既定で追加されます。このフォームを"Form1"と呼びます。フォームを表す 2 つのファイルには、Form1.cs と Form1.designer.cs と呼ばれます。Form1.cs で、コードを記述します。Sesigner.cs ファイルは、Windows フォーム デザイナーのすべてのアクションを実装するコードのコントロールを追加することによって実行することです。Windows フォーム デザイナーで Visual C# 2005年の詳細については、次のマイクロソフト Web サイトを参照してください。
には、トップ動作を検証します。
- F5 キーを押してデバッグ モードでアプリケーションを実行します。
- フォームが表示されたらをクリックします。 取得します。製品.
は、 データ グリッド Northwind の製品のすべての製品を表示します。テーブルです。 - クリックしてください。 文字列をビルドします。.
メッセージ ボックスの最初の行のセルの連結された内容を示すが表示されます。7 (0 から始まる) のインデックスを持つセルです。 - デバッグを停止するのには、shift キーを押しながら F5 キーを押すとVisual Studio に戻る。NET。
には、トップトラブルシューティング
構文を混同くださいことを確認します。2 つの言語で動作します。Visual の C# は非常に特定し、エラーメッセージいない常に、プロンプトまたは内のエラー メッセージのように直感的です。Visual Basic。NET または Viusal Basic 2005。したがって、「言語の比較」ブックマークを作成することができますセクションにします。これらのトラブルシューティングを行うには、NET Framework ソフトウェア開発キット問題が発生します。ミリ秒で、次のヘルプ トピックを検索します。ヘルプ:
ms:help://MS。VCC と MS。MSDNVS/vsintro7/html/vxgrfLanguageEquivalents.htm
トップに戻る詳細については、次の MSDN Web を参照してください。サイト:
トップに戻る文書番号: 816175 - 最終更新日: 2011年7月28日 - リビジョン: 4.0
| kbhowto kbhowtomaster kbinterop kbappdev kbmt KB816175 KbMtja |
機械翻訳の免責重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:
816175
(http://support.microsoft.com/kb/816175/en-us/
)
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。