- PR -

Windowフォームでのdatagridの値取得について

1
投稿者投稿内容
take
会議室デビュー日: 2005/01/14
投稿数: 7
投稿日時: 2005-01-24 08:31
Windowフォームでの選択されたdatagridの値を取得したいのですが、どのようにすれば
取得できるのでしょうか?
 WEBフォームでは
 string Getdata = e.Item.Cells[1].Text
で取得できるのですがWindowフォームではわかりません
よろしくお願いします
 
Os_
ベテラン
会議室デビュー日: 2003/04/16
投稿数: 77
投稿日時: 2005-01-24 08:49
選択されたセルの値を取得するのであれば、

object value = DataGrid[DataGrid.CurrentCell];

で取得できませんか?
take
会議室デビュー日: 2005/01/14
投稿数: 7
投稿日時: 2005-01-24 09:02
解決しました

int no = DataGrid.CurrentCell.RowNumber;
object get_no = DataSet.Tables[0].Rows[no]["コード"];

で選択された行のコードの値を取得できました
ありがとうございました
Os_
ベテラン
会議室デビュー日: 2003/04/16
投稿数: 77
投稿日時: 2005-01-24 09:13
引用:

takeさんの書き込み (2005-01-24 09:02) より:
-int no = DataGrid.CurrentCell.RowNumber;
object get_no = DataSet.Tables[0].Rows[no]["コード"];

で選択された行のコードの値を取得できました



余計なお節介ですが、
takeさんの方法は、DataGrid上で並び替えを行わない場合のみ可能です。
列ヘッダーのクリック等で、並び替えが発生すると、カレントセルの行番号と
レコード番号とが一致しないので、対象としている値が取得できない危険性があります。

カレント行のデータを取得する必要がある場合は、
DataGridのCurrencyManagerを取得し、このCurrencyManagerからカレントレコードを
取得します。
// DataGrid dg;
CurrencyManager cm = (CurrencyManager)dg.BindingContext[dg.DataSource, dg.DataMember];
DataRow dr = ((DataRowView)cm.Current).Row;


[ メッセージ編集済み 編集者: Os_ 編集日時 2005-01-24 09:57 ]
1

スキルアップ/キャリアアップ(JOB@IT)