• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DataGridViewに関して)

DataGridViewに関する質問

このQ&Aのポイント
  • DataGridViewに関して教えて下さい。
  • DataGridViewの選択されている行と項目の値を取得する方法を教えてください。
  • Visual Basic2008でのDataGridViewの使用方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

はじめまして、通るすがると申します。 さてご質問の件ですが、選択されているDatagridViewの内容をプログラムの中で使用するという行為は、あまり望ましくないと思います。何故ならば表示中の内容は表示用に編集されている可能性がありそれを便宜的にプログラムの中で利用できることは実務的に利用できる機会はあまり発生しないと思います。具体的にどうゆうことかというとたとえば名称であれば、内部的に表示する名称は なんらかの形で変形されたデータであったり(コードをマスタを用いて漢字に変換したものをview表示用に変換したもの)或いは、 数値を表示用に変換したもの(9999->9999,9、00123->△△123など)であることがあるからです。 このように変形されたデータを利用することによりよりプログラム自体が煩雑になり保守性に欠ける作りとなる可能性があります。 これらを回避するためには、表示用と内部処理用の領域を分けて、選択行から内部処理用のどの部分が該当の領域を示して いるかを特定し、あくまでも、プログラム内部の処理では内部処理用に設けた値を利用するのが妥当かと思います。 なお、何行目が選択されたかは、DataGridView1.CurrentCell.RowIndex を見れば判断できるかと思います。 また、選択ボタンをおした際に認識したいということですが、これはDatagridView内に設けたボタンなのかまたは、それ以外の場所 に設けたものなのか、それとも別windowsのボタンとして定義したものによるものなのかが判断できませんがその内容により どのイベントを利用するのかが変わってくるものと思います。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.2

> 参考になるようなホームページ、もしくはコードを記述して頂ければ幸いです。 プログラム中にコードやコントロールを選択した状態で[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 そのコントロールに用意されている機能を暗記したらどうでしょう。 日本語が読める人ならできるレベルの作業ですので。 (日本語で意味が分からない部分は使いませんので忘れていいです) これをやるだけで、初心者でも、初歩的な質問はしなくても 自力で解決できるようになります。

yurix_1
質問者

お礼

とても参考になりました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • sn4sn3
  • ベストアンサー率25% (16/62)
回答No.1

VBやってました。 自分の場合、まず下記サイトで調査。 http://dobon.net/ (もしくは、「dobon」で検索) かなり色々あります。 DataGridViewはほぼカバーできるのではないかと。 そこで載ってなければGoogle検索でした。 参考まで。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VB.netのDataGridViewについて

    VB.netのDataGridViewについての質問です。 DataGridViewで出力された行を選択して、 その行の値をテキストボックスなどに出力させることは可能なのでしょうか? やりたいことは 1.データベースより取得してきたDatatableをDataGridViewに出力 2.出力されたDataGridViewの行を選択する 3.その選択された行の項目(複数)の値を画面上の個々の   テキストボックスなどに反映させる です

  • DataGridViewのRowCommandイベントで

    開発環境はVS2005のC#です。.NET2.0 DataGridViewのRowCommandイベントを利用して、更新された行のテキストの値を取得したいのですが、どのようにコードを書いてよいのか分かりません。 恐れ入りますが、ヒントになるようなことを教えていただけないでしょうか? よろしくお願いします

  • DataGridView 複数選択で行番号の取得

    Visual Basic 2008 を使っています。 DataGridViewで複数の行を選択したとき、それぞれが何行目なのかを取得するにはどうしたらいいでしょうか? 具体的には、複数選択されている行の0列目の値をテキストボックスに表示するという動作を行いたいです。 自分で書いたコードをペーストしておきます。 Dim count As Integer = Me.DataGridView1.SelectedRows.Count For count = 0 To count - 1 Dim test As String test = Me.DataGridView1.Rows(?何行目か).Cells(0).Value Me.TextBox4.Text = test & "が選択されています。" & vbCrLf & zenkai Dim zenkai As String = Me.TextBox1.Text Next

  • DataGridViewに関して

    開発環境:Visual Basic 2008 あるデータをDataGridViewにて表示させていますが、その際に、データのグループ 単位でグリッド線をを太く、あるいは色を変化させる事ができないかと考えています。 DataGridView全体のグリッド線の色を変化させるような事は可能かと思われますが、 データを表示する過程で、規則性のない(グループ単位)で、行のグリッド線を変更する ような事は可能でしょうか? 教えて下さい。 よろしくお願いします。

  • DataGridViewで末尾の空白行をクリックしたか判別

    VB2005Expressにて開発しています。 データテーブルの値をDataGridViewにセットして表示しています。 クリック(選択)したのはDataGridViewの末尾の空行なのかを判別 したいと思っています。 どのような方法があるのかご存知の方がいらっしゃいましたら 教えて下さい。 よろしくお願いします。

  • DataGridViewで、選択した行の値を取得したい。

    VB2005環境です。 VB2005で、選択した行の、特定の列から値を取って、 テキストボックスに出力したいと思っています。 Itemプロパティかと思い、 TxtBox1.Text = Me.DataGridView1.Item _(0,Me.DataGridView1.CurrentRow.Index).ToString と記述してみました。1列目の、選択した行と交わるセルの 値が取れるかと思いきや、うまく取得できません。 方法を教えていただけないでしょうか? よろしくお願いします。

  • DataGridViewに関して

    開発:Visual Basic 2008 考え方の質問になってしまうかもしれませんが教えて下さい。 Datagridviewを用いて、データの入力をさせたいと考えています。 但し、入力だけでなく画面にある表示ボタンを押した際には、テーブルに格納されている データを検索しに行き、その内容を表示させたいと考えています。 Datagridviewはフォームに貼り付け、各項目を一つずつ作成してあります。 しかし、この場合、以下のような記述をすると(そもそも記述が違うかと思われますが・・・)、 もともと作成してある項目(列)にデータがセットされず、新規で列を作ってしまいます。 《記述内容》 '変数の宣言 Dim dtSet As DataSet = New DataSet("PRODUCTS") Dim dtTable As DataTable 'データセットにテーブルを追加する dtTable = dtSet.Tables.Add("A_TBL") 'テーブルにフィールドを追加する '.Add("フィールド名", フィールドの型)で追加します dtTable.Columns.Add("AAA", Type.GetType("System.String")) Dim data_row As DataRow = dtTable.NewRow() data_row("AAA") = PIN_AAA dtTable.Rows.Add(data_row) 'DataGridにデータを表示する G_BBB.DataSource = dtSet.Tables(0) そもそもDatagridviewを用いて、入力や表示を行うにはどのような形にするのが 良いのでしょうか? Datasetとか使う? 教えて頂きたいと思います。 よろしくお願いします。

  • DataGridViewから値取得

    DataGridViewにボタンと項目2つが配置されています。 DataGridView1 DataGridView1.Columns("btn").HeaderText = "ボタン" DataGridView1.Columns("item1").HeaderText = "アイテム1" DataGridView1.Columns("item2").HeaderText = "アイテム2" ボタンを押すと、押した行のレコードを取得したいです。 ボタンのところを押下すると、 イベントハンドラで何行目か分かるサンプルをネットで見つけました。 惜しいですが、やりたいのと少し違いました。 'CellContentClickイベントハンドラ Private Sub DataGridView1_CellContentClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick Dim dgv As DataGridView = CType(sender, DataGridView) Dim test_item1 As String Dim test_item2 As String ' "btn"列ならば、ボタンがクリックされた If dgv.Columns(e.ColumnIndex).Name = "btn" Then MessageBox.Show((e.RowIndex.ToString() + "行のボタンがクリックされました。")) End If ' ここに押された行のitem1の値をセット ' test_item1 = (A) ' ここに押された行のitem2の値をセット ' test_item2 = (B) End Sub (A)、(B)に何を記述すれば値を取得できますか?

  • C# DataGridViewのループ処理

    DataGridViewの特定列の値を1行ずつ取得し 入力データが全角文字か入力チェックを行いたいと考えています。 DataGridViewの特定列を1行ずつ確認するループ方法を ご教示頂ければと思います。

  • VB2005 DataGridView CurrentCell.ColumnIndex

    VB2005です DataGridViewで + ヘッダ + 項目名1 + 項目名2 + 項目名3 + 項目名4 + 列の順序変更で + ヘッダ + 項目名3 + 項目名2 + 項目名4 + 項目名1 + とした場合 i = DataGridView1.CurrentCell.ColumnIndex Label1.Text = DataGridView1.Columns(i).HeaderText としてヘッダ項目名を取得できましたが、 For x=0 to DataGridView1.ColumnCount - 1 として、セルの左から順番に項目名を取得するにはいかがしたらよろしいでしょうか? コードでCurrentCellを移動する方法も合わせて教えて下さい。 また上記2行のコードをもっとスマートに書けないでしょうか?

このQ&Aのポイント
  • 論文をスキャナ取り込みし、PDF化する際には色別レイアウト認識を行い、文字認識のみにすると元の表や写真が正しく認識されない場合があります。
  • 表、写真、文章をそれぞれレイアウト認識し、それぞれを文字認識することで、元の原稿と同じ認識結果を得ることができます。
  • ソースネクスト株式会社の製品・サービスを活用することで、高品質なスキャン結果を得ることができます。
回答を見る

専門家に質問してみよう