2009-04-09 14 views
0

フォームにDataGridを追加します。プログラムが実行されると、ユーザーは値を入力し、問題の値を使用します。私は2つの列を持つテーブルのための同様の実装が必要であり、ユーザーが値を入力すると、それらをプログラムの計算に使用します。C#でDataGridを作成するにはどうすればよいですか?

これらの値をデータベースに保存する必要はなく、プログラムで使用されるだけです。

どのようにC#でこれを行うのですか?

+0

あなたの質問にもっと説明していただけますか?あなたはこれを行うためのWindowsアプリケーションを使用していますか? – rahul

+0

はい私はWindowsアプリケーションです。テーブルを追加したいだけですが、C#にテーブルがありません。代わりに他の方法があります。 – Arunachalam

+0

同じ目的でDataGridを使用していたとします。それでは、なぜこれに対して別のコントロールが必要ですか? – rahul

答えて

2

winforms環境では、厳密に型指定されたコレクションをデータソースとしてバインドできます。コレクション内のオブジェクトの各プロパティは列を作成します(厳密に言えば、コレクション内の個々のアイテムではなく、コレクションが返すタイプのプロパティが機能すると思います)

1

WinForms Appを作成する場合はDataTableを使用してデータを格納し、DataGridViewを使用してデータを表示することができます。単純にデータテーブルを作成します。

var columnSpec = new DataColumn(); 
columSpec.DataType = typeof(decimal); // If it holds a decimal 
columSpec.ColumnName = "Interest Rate"; 
dataTable.Columns.Add(columnSpec); 

は、Designerを使用してフォームにDataGridViewのを追加します - しかし、テーブルはそれバインドする作成した後でないと、その後の操作を行います。

dataTable = new DataTable(); 

あなたがプログラム的に必要な列を作成します。

dataGridView.DataSource = dataTable; 

デザイナビューからグリッドのプロパティを設定できます。

これは、DataTableがプログラムから読み込まれて表示される読み取り専用のケースでこれを行っています。ユーザーが行うことができるのは、列の視認性を変更、並べ替え、または設定することです。あなたは

0

再文言ローランドショー

RowsAddedイベントにフックする必要があります新しい行を追加するには、データグリッドにバインドするためのデータベースを持っている必要はありません。厳密に型指定されたコレクションまたは汎用コレクションにデータが格納されている場合は、そのデータグリッドをコレクションにバインドできます。データグリッドはコレクションからデータを入力します。

プロパティ名が列として使用され、行はコレクションの行ごとに表示されます。

ユーザーの入力が必要な場合は、より良いグリッドコントロールの使用を検討する必要があります。データグリッドはこの目的には適していません。フレックスグリッド(ocxのもの)が.Netのためにやり直されたかどうかはわかりません。

0

datagridviewを使用してデータテーブルを作成し、コードに列を追加し、datagridviewのデータソースをこのデータテーブルとして設定し、DataggridviewのプロパティウィンドウのAllowUserToAddRowsをtrue(デフォルト値はtrue)に設定できます。

完全な更新が行われた後に計算を行いたい場合は、RowPrePaintイベントを使用できます。または、各セルのデータが更新された後に計算を実行する場合は、CurrentCellChangedイベントを使用できます。データグリッドビュー。

希望します....

関連する問題