- - PR -
DataGridViewのカレント行の値取得
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-11-12 16:22
DataGridView のデータソースに BindingSource を使用するととても便利です
しかし、何らかの事情で(DataSetに)キーが入っていない時はどうなるでしょうか? または、表示上でキーを非表示にしている場合もしかり 表示上のデータから選択行データを取得するには、型を意識すれば簡単に取得できます 下記ページが参考になると思います Windows フォームの DataGridView 行にバインドされたオブジェクトにアクセスする 良く聞かれることですので、これで済むと思います [C#] System.Windows.Forms.DataGridViewRow dgr = dataGridView1.CurrentRow; System.Data.DataRowView drv = (System.Data.DataRowView)dgr.DataBoundItem; System.Data.DataRow dr = (System.Data.DataRow)drv.Row; |
|
投稿日時: 2007-11-12 17:18
お世話になります。かずくんさんには色々とアドバイスいただきましたが
何とか自己解決できました。ありがとうございました。 [quote] かずくんさんの書き込み (2007-11-12 14:49) より: マスタメンテに適用されるような、一覧−明細形式の画面何ですよね。 そして、一覧側で選択した行の詳細を明細側に表示する構成なのですよね。 もしそうなら、まずは[url=http://www.atmarkit.co.jp/fdotnet/special/win20review02/win20review02_02.html].NET Framework 2.0のWindowsフォーム新機能(後編)[/url](atmarkit.co.jp)を読まれることをお勧めします。 詳細は、上記サイトを見ていただくとして、 DataGridViewのDataSourceとしてDataSetを指定するのではなく DataGridView -- BindingSource -- DataSetと間に一枚はさむ構成をとらせます。 他の明細も同様に、一枚はさむ構成をとらせます。 たったこれだけのことで [quote] で、ここからが本題なのですが、先にも書きました通り、DataGridViewの SelectionModeプロパティにFullRowSelectをセットし、DataGridViewのセルを 選択すると、その行全体が選択される、つまりフォーカスが当たるように設定を しているのです。 と、ここまでが前提条件です。問題はこの後で どこでもいいのですが、ある行を選択したとして、そこには機種、型式、機番といった 情報が入っているとします。 その情報を、3つのテキストボックスにバラバラに表示したいだけなのです。 たったそれだけのことなのですが [/quote] が、できてしまうという寸法。 まずは、上記のサイトを読んで見てください。 ただこれだけでは、なぜ実現できるかという部分が抜けてしまうので、 できればその後、MSDNにて、なぜの部分を勉強してみてください。 [/quote] http://www.atmarkit.co.jp/fdotnet/dotnettips/521dgvselectedcells/dgvselectedcells.html 上記サイトの記事において目的を達することができました。 かずくんさん、いろいろご教授いただき、ありがとうございました。 かずくんさんに教えていただいた情報も、参考にさせていただき、勉強させて いただきます。本当にありがとうございました。 |