【VB.NET】データグリッドビューで行毎のコンボボックスにイベントを設定する

2017年12月15日VB.NET,開発

おはようございます。

引き続きVB.NETの話し。
今回はデータグリッドビューに配置したコンボボックスにイベントを設定するといったことをやってみます。

プログラムは前回のものを流用します。

スポンサーリンク

プログラムの修正

新規メソッド追加

ドロップダウンが(選択されて)閉じられた際の処理を新規メソッドで定義

Form1.vb

ここで、行インデックスや、列インデックス、または名前などを判定して処理を分岐します。

新規イベント追加

イベントの追加
イベントの追加

デザイナー画面でデータグリッドビューを選択し、プロパティ画面から対象のイベントを作成します。

データグリッドビューのセル内に設置したコンボボックスの内容が表示された際に、ドロップダウンが(選択されて)閉じられたイベントを追加します。

From1.vb

既存処理の修正

データグリッド内のコンボボックスを選択した際に、
同じコンボボックスを連続でクリックすると正しく開かない問題が発覚したため既存の処理も修正。

Form1.vb

データグリッドビューのセルエンターイベントで処理していたのを、
セルクリックに変更して、更に「SendKey.Send」を「SendKey.SendWait」に変更。

起動してみる

起動後の画面
起動後の画面

起動後の画面です。

コンボボックスを選択
コンボボックスを選択

コンボボックスを選択します。

イベントが処理される
イベントが処理される

イベントが処理され、メッセージボックスが表示されました。

まとめ

データグリッドビューにコンポーネントを配置するってよくある話しだと思うんですが、何で標準でもっと便利にしてくれないんでしょうかね。

ちょっとハマった部分は、コンボボックスを1回で開くところですね。
まあなんとかなってよかったです。

また何かあれば記事にしようと思います。

ではでは。

 

スポンサーリンク


関連するコンテンツ

2017年12月15日VB.NET,開発VB.NET,サンプルプログラム

Posted by doradora