- ベストアンサー
DataGridViewに関する質問
- DataGridViewに関して教えて下さい。
- DataGridViewの選択されている行と項目の値を取得する方法を教えてください。
- Visual Basic2008でのDataGridViewの使用方法について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
はじめまして、通るすがると申します。 さてご質問の件ですが、選択されているDatagridViewの内容をプログラムの中で使用するという行為は、あまり望ましくないと思います。何故ならば表示中の内容は表示用に編集されている可能性がありそれを便宜的にプログラムの中で利用できることは実務的に利用できる機会はあまり発生しないと思います。具体的にどうゆうことかというとたとえば名称であれば、内部的に表示する名称は なんらかの形で変形されたデータであったり(コードをマスタを用いて漢字に変換したものをview表示用に変換したもの)或いは、 数値を表示用に変換したもの(9999->9999,9、00123->△△123など)であることがあるからです。 このように変形されたデータを利用することによりよりプログラム自体が煩雑になり保守性に欠ける作りとなる可能性があります。 これらを回避するためには、表示用と内部処理用の領域を分けて、選択行から内部処理用のどの部分が該当の領域を示して いるかを特定し、あくまでも、プログラム内部の処理では内部処理用に設けた値を利用するのが妥当かと思います。 なお、何行目が選択されたかは、DataGridView1.CurrentCell.RowIndex を見れば判断できるかと思います。 また、選択ボタンをおした際に認識したいということですが、これはDatagridView内に設けたボタンなのかまたは、それ以外の場所 に設けたものなのか、それとも別windowsのボタンとして定義したものによるものなのかが判断できませんがその内容により どのイベントを利用するのかが変わってくるものと思います。
その他の回答 (2)
- MARU4812
- ベストアンサー率43% (196/452)
> 参考になるようなホームページ、もしくはコードを記述して頂ければ幸いです。 プログラム中にコードやコントロールを選択した状態で[F1]キーを押すだけで ヘルプ(MSDN)が表示されます。 一般に内容を理解するのは難しいと言われていますが、確かに全てを理解する には知識を必要とします。ですが、宇宙語で書かれているわけではありませんし、 自分が使おうとしているものの説明なのですから、読んでいくべきでしょう。 そもそもコントロールの特性を知らないと。 http://msdn.microsoft.com/ja-jp/library/e0ywh3cz(v=vs.85).aspx 選択の種類がありますよね。 基本セル単位ですから、行選択されているとは限らない。セル単位で 選択されている場合は選択行は何をさして言うのか?SelectionMode との 兼ね合いもあります。 更には例え「行選択モード」だったとしても複数行を選択できます。 その場合は全部取得するのか?それとも選択行と言いつつカレント行の 意味で言っているのか。 それぞれで回答は変わってくるわけですから、 本来はそこまで考えて質問すべきです。 初心者だからできない?本当にそうでしょうか? 上に示した動きなど、実際に画面上に貼り付けてプログラムを実行し、 30分も触っていれば気付いても不思議ではないですよね? > 初心者なので、初歩的な質問で申し訳ありません。 などというくらいなら http://msdn.microsoft.com/ja-jp/library/system.windows.forms.datagridview.aspx そのコントロールに用意されている機能を暗記したらどうでしょう。 日本語が読める人ならできるレベルの作業ですので。 (日本語で意味が分からない部分は使いませんので忘れていいです) これをやるだけで、初心者でも、初歩的な質問はしなくても 自力で解決できるようになります。
- sn4sn3
- ベストアンサー率25% (16/62)
VBやってました。 自分の場合、まず下記サイトで調査。 http://dobon.net/ (もしくは、「dobon」で検索) かなり色々あります。 DataGridViewはほぼカバーできるのではないかと。 そこで載ってなければGoogle検索でした。 参考まで。
お礼
とても参考になりました。 ありがとうございました。