【VB.NET】データグリッドビューを動的に作成して行毎に違う内容のコンボボックスを表示する

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

おはようございます。

ちょっと仕事の関係でVB.NETを使う機会があったので、備忘的な記事になります。

完全にデータグリッドビューの使い方からは外れてしまうのかもしれませんが、
行ごとに別の内容のコンボボックスを表示するといったことをやりました。

まずはサンプルプロジェクトの作成から。

スポンサーリンク

プロジェクトの新規作成

プロジェクトの作成
プロジェクトの作成

VisualStudio2017 を起動し、上部メニューの「ファイル」>「新規作成」>「プロジェクト」を選択します。

プロジェクト名の入力
プロジェクト名の入力

新しいプロジェクト作成ウィザードが表示されるので、
「Visual Basic」>「Windowsフォームアプリケーション」を選択、名前を入力して「OK」ボタンをクリックします。

デザイナー画面
デザイナー画面

作成後はデザイナー画面が表示されます。

とりあえずプロジェクトの作成はこれで完了です。

データグリッドビューの配置

データグリッドビューの配置
データグリッドビューの配置

ツールボックスから「DataGridView」を選択して画面に配置します。
サイズなんかはとりあえず適当で大丈夫です。

名前の設定

プロパティから、「Name」の項目に「dgv」を設定しておきます。
(コードビハインドから操作する際にこの項目を使用します)

イベントの追加

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

データグリッドビューを選択した状態でプロパティから、イベントメニューを選択、
「Load」の項目をダブルクリックして起動時の処理を追加します。

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

また、データグリッドビューのセルに設置するコンボボックスのために、
「CellEnter」の項目もイベントを追加しておきます。

処理の実装

Form1.vb(コード)に、プログラムを記述します。

ロードイベント

データグリッドビューのセルエンターイベント

データグリッドビューのコンボボックス制御

通常だと、データグリッドビューに設置したコンボボックスは一回のクリックで開いてくれない。
それをなんとかするための措置。

起動してみる

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

ひとまずグリッドに内容が表示されました。

1行目のコンボボックス
1行目のコンボボックス

1行目のコンボボックスの内容です。

2行目のコンボボックス
2行目のコンボボックス

2行目のコンボボックスの内容です。

ひとまず目的のことはできましたね。

まとめ

本来であれば、データグリッドビューではなく他のコントローラで実現すべきところなんだと思いますが、顧客からの要望なんかでやらざるをえない場合もありますよね。

何かの参考になれば。

ではでは。

スポンサーリンク


関連するコンテンツ

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

Posted by doradora