• 締切済み

DataGridViewの選択した行の値を別のフォ

プログラミング初心者です。 検索してもよく分からかったので、皆様のお力を貸してください。 DataGridViewの選択した行の値を別のフォームに渡したいです。 別のフォームにはNumericUpDownが一行のセルの数の分あり、 そこに値を渡し、変更された値をボタンを押すことでもとのフォームに反映させたいです。 お願い致します。

みんなの回答

noname#186041
noname#186041
回答No.1

仮にDataGridViewのあるフォームをForm1、NumericUpDownのあるフォームをForm2とします。 Form1のDataGridVewの名前をDataGridVew1とし、一行に3つのセルがあるとします。 その3つのセルに対応するForm2のNumericUpDownの名前を、NumericUpDown1、NumericUpDown2、NumericUpDown3とします。 DataGridVew1の任意の1行の全体を選択したいので、MultiSelectプロパティをFalseに、SelectionModeプロパティをFullRowSelectに設定します。 コードの編集で、DataGridVew1を選択し、SelectionChangedのイベントを選択して、Form2の3つのNumericUpDownにDataGridVew1の各セルの値を渡すためのコードを追加します。 Private Sub DataGridView1_SelectionChanged(sender As Object, e As EventArgs) Handles DataGridView1.SelectionChanged Form2.NumericUpDown1.Value = Me.DataGridView1.SelectedRows(0).Cells(0).Value Form2.NumericUpDown2.Value = Me.DataGridView1.SelectedRows(0).Cells(1).Value Form2.NumericUpDown3.Value = Me.DataGridView1.SelectedRows(0).Cells(2).Value End Sub 行も列もインデックスが0から始まることに注意します。 これでForm2を表示させて、Form1のDataGridView1の任意の行を選択すると選択された行の各セルの値がForm2のNumericUpDownに反映されます。 更に、Form2のNumericUpDownの値を変更してその値をForm1のDataGridViewに反映させるには、Form2にボタンを一つ追加して以下のコードを書き込みます。 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Form1.DataGridView1.SelectedRows(0).Cells(0).Value = Me.NumericUpDown1.Value Form1.DataGridView1.SelectedRows(0).Cells(1).Value = Me.NumericUpDown2.Value Form1.DataGridView1.SelectedRows(0).Cells(2).Value = Me.NumericUpDown3.Value End Sub これだけです。あとは適当にアレンジしてください。

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

関連するQ&A

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

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

  • DataGridViewの値を別フォームに

    こんにちは。 1つ教えて頂けないでしょうか。 Form1にDataGridViewがあり、どれか1行ダブルクリックすると Form2にForm1のDataGridViewの7列目の値の条件で抽出した結果を Form2のDataGridViewに表示したいのです。 Form1からの受け渡しデータはForm2のテキストボックス(条件)に表示させ 受け渡されて来たときは表示ボタンをクリックしなくてもForm2の DataGridViewは表示したいのです。 それぞれのFormは作成し、Form1は Private Sub dgv_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgv.CellDoubleClick Dim f As New Form2 f.txt条件 = Me.DataGridView.SelectedRows(0).Cells(7).Value f.ShowDialog() End Sub とコーディングしました。 Form2は表示されるのですが、データの受け渡しができていないし f.txt条件 = Me.DataGridView.SelectedRows(0).Cells(7).Valueの部分でキャストできませんのエラーに なります。 DataGridViewの選択した値を別のフォームに渡し、そのまま別フォームのDataGridViewを表示させたいのですが。 わかる方おられましたら、教えて頂けないでしょうか。 大変申し訳ありませんが、どうぞよろしくお願いします。

  • DatagridViewの値確定

    VB2005です。 DataGridViewを私用しています。 EditModeはEditOnEnterです。 特定のセルの値を変更し、カーソルがその列から移動していない状態で、 Buttonコントロールをクリックすると、ボタンクリック時のイベントの前に、 そのセルのCellValueChangedイベントが発生します。 が、同じ要にセルの値を変更し、カーソルがその列から移動していない状態で、 HScrollBarコントロールをクリックすと、CellValueChangedイベントが発生しません。 そうすると、変更した値が反映されず、前の値で処理が進んでしまいます。 HScrollBarコントロールをクリックしたときも、DataGridViewの値が 確定される方法はないでしょうか。 よろしくお願いいたします。

  • 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)に何を記述すれば値を取得できますか?

  • DataGridView 複数行同時変更について

    お世話になっております。 現在C#でアプリケーションを作成しています。 その中でDataGridViewを用いて、 1.セルを複数行同時にドラッグ選択 2.値を変更 3.選択した複数行に値を反映 ということを行いたいのですが、 値の反映が1.で選択した最下行にしか行われません。 (CellValueChangedに1回しか飛んでこない、EventArgsにRowIndexだけでRowIndexesみたいなのがない) 解決するにはどうすればよいでしょうか? 御存知の方いらっしゃいましたら教えてください。 宜しくお願いします。

  • DataGridViewでコードで値を入力したい

    VB2005のDataGridViewですが、行と列を指定して そのセルに値を入力したいと思いますが、どのプロ パティに行番号・列番号を入れればいいのでしょうか?

  • フィルター後の表示セルの値をテキストボックスへ

    おせわになります。 エクセルのVBAで、 フィルターを掛けて表示されている行のセルの値を、 ユーザーフォーム・テキストボックスへ表示させたいと思っています。 ユーザーフォームの「進む」「戻る」ボタンを使って、 表示行の値を1行づつ取得したいのですが、 ・表示されているセルの値取得 ・ボタンを押すごとに表示行のみ一行づつ移動 がわからずにつまづいています。 よろしくお願い致します。

  • VB.netのDataGridViewについて

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

  • DataGridViewに配列の値を表示したい

    VB2008でプログラミングをしています。(超初心者です) タイトルどおり、DataGridViewに一次元配列の値を表示したいと思っています。 最初は、以下のとおりにプログラムを書いてみたのですが、 表示されるのは各要素の長さでした。 dim array() as string = {"data1","data2","data3"} DataGridView1.DataSource = array どのようにすれば、要素の値が表示されるのでしょうか? 出来れば{"data1","data2","data3"}のように、 各要素を書き出さない方法が知りたいです。 (要素数が不確定のため) よろしくお願いいたします。

  • VB2005のDataGridViewについて

    プログラム側からはいろいろなセルに値を入力できて、 でも、ユーザー側からは行しか選択させない、かつ編集させないっていう方法ありますか? DataGridViewのSelectionModeをFullRowSelectにすると、 選択方法が行だけになるんですが、 入力もColumnIndexが0でないと、セルに値が入力できなくなってしまうんです。(つまり、1行につき1つのセルにしか入力できない) なんかいい方法はありますか?

このQ&Aのポイント
  • 筆まめ2012の住所録データを簡単に変換する方法についてご紹介します。筆まめ2012の住所録をデータ変換したい場合、ソースネクスト株式会社の製品・サービスを活用することがおすすめです。
  • 筆まめ2012の住所録データを効率的に変換する方法をご紹介します。ソースネクスト株式会社の製品・サービスを利用することで、簡単かつスムーズにデータ変換が可能です。
  • 筆まめ2012の住所録データを簡単に変換する方法を解説します。ソースネクスト株式会社の製品・サービスを利用することで、面倒な作業を省略し、効率的にデータ変換を行うことができます。
回答を見る

専門家に質問してみよう