C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: DataGridViewで質問致します。


(過去ログ 74 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■43433 / inTopicNo.1)  DataGridViewで質問致します。
  
□投稿者/ がながな (10回)-(2009/11/10(Tue) 15:16:08)

分類:[ASP.NET (VB)] 

いつもお世話になります。
DataGridViewでソースをSQLSERVERの「商品マスタ」テーブルとし、Windowsフォーム内にデータグリッドビューを作成いたしました。

DataGridViewの先頭に「選択」ボタンを作成したのですが、選択ボタンクリック時に商品IDを変数にセットしたいのですが、どのようにしたらいいのかわかりません。

商品マスタのフィールドは以下のようになります。
ID、商品名、単価

DataGridViewには
選択ボタン、ID、商品名、単価
と作成し、選択ボタンクリック時にIDを変数「SELECTID」にセットしたいです。


どこか詳しく紹介しているサイトなどございましたら教えて頂けないでしょうか?

引用返信 編集キー/
■43434 / inTopicNo.2)  Re[1]: DataGridViewで質問致します。
□投稿者/ とも (12回)-(2009/11/10(Tue) 15:21:17)
[VB.NET]
'CellContentClickイベントハンドラ
Private Sub DataGridView1_CellContentClick(ByVal sender As Object, _
ByVal e As DataGridViewCellEventArgs) _
Handles DataGridView1.CellContentClick
Dim dgv As DataGridView = CType(sender, DataGridView)
'"Button"列ならば、ボタンがクリックされた
If dgv.Columns(e.ColumnIndex).Name = "Button" Then
MessageBox.Show((e.RowIndex.ToString() + _
"行のボタンがクリックされました。"))
End If
End Sub

DOBONさんのとこにグリッドビューにボタン配置してそのボタン押下されたときのイベント
処理がのってましたが、これでその選択行の列IDをセットできるんじゃないでしょうか。
引用返信 編集キー/
■43435 / inTopicNo.3)  Re[2]: DataGridViewで質問致します。
□投稿者/ がながな (11回)-(2009/11/10(Tue) 15:35:39)
早速の御返事ありがとうございました。
行番号じゃなく、その行のIDを表示する事は出来ますか?
よろしく御願いいたします。
引用返信 編集キー/
■43437 / inTopicNo.4)  Re[3]: DataGridViewで質問致します。
□投稿者/ とも (13回)-(2009/11/10(Tue) 15:49:15)
これは例だと思うんでe.Rowindexでイベント行を取得してるから結局やりたいことはその
e.Rowに対しての取得方法忘れたけどcolだかでその行のその列は取得できるんじゃないでしょうか。
引用返信 編集キー/
■43438 / inTopicNo.5)  Re[3]: DataGridViewで質問致します。
□投稿者/ 魔界の仮面弁士 (1379回)-(2009/11/10(Tue) 15:57:51)
2009/11/10(Tue) 16:00:39 編集(投稿者)

> 分類:[ASP.NET (VB)] 
> DataGridViewでソースをSQLSERVERの「商品マスタ」テーブルとし、
ASP.NET で、DataGridView は基本的に使えないと思いますが…。


> Windowsフォーム内にデータグリッドビューを作成いたしました。
分類:[VB.NET/VB2005 以降]、かな?


No43435 (がながな さん) に返信
> 早速の御返事ありがとうございました。
> 行番号じゃなく、その行のIDを表示する事は出来ますか?

DataTable 等をバインドさせているのであれば、グリッド上の該当行(DataGridViewRow)から
.DataBoundItem プロパティを使えるかと思います。ともさんの提示されたコードに加えて、
  Dim rowView As DataRowView
  rowView = TryCast(dgv.Rows(e.RowIndex).DataBoundItem, DataRowView)
  If rowView IsNot Nothing Then
    MsgBox(rowView("ID").ToString())
    MsgBox(rowView("商品名").ToString())
    MsgBox(rowView("単価").ToString())
  End If
とか。この場合、グリッドに表示させていない DataColumn でも取得できます。


あるいは特にバインドさせていないのであれば、DataGridView 上の ID 列を見るために
『dgv(列番号, e.RowIndex).Value』を用いることもできるかと。
引用返信 編集キー/
■43440 / inTopicNo.6)  Re[4]: DataGridViewで質問致します。
□投稿者/ がながな (12回)-(2009/11/10(Tue) 16:05:19)
皆さん本当にありがとうございました。
無事解決いたしました。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -