- 締切済み
DataGridViewの列スタイルについて
開発環境 VB.NET SQLServer2008 DataGridViewにDBから取得したデータを一覧表示させようと思っています。 テキストボックスの列、チェックボックス、コンボボックスの列を 追加させることはできたのですが、同一列に異なる種類のコントロールを 配置するということはできるのでしょうか? 例えば・・・ -------------- 行No |列1 -------------- 1 |□ -------------- 2 |□▼ -------------- ・行No1、列1のセルはチェックボックスのセルを表示する ・行No2、列1のセルはコンボボックスのセルを表示する 列を追加しているコードは以下の通りです。 Form_Load時に実行しています。 ------------------------------------------------------------- Private Sub initializeDgvTest() Dim dgv As DataGridView = Me.dgvTest dgv.Columns.Clear() dgv.AutoGenerateColumns = False Dim colLabel As New DataGridViewTextBoxColumn() colLabel.DataPropertyName = "LABEL" colLabel.Name = "LABEL" colLabel.HeaderText = "ラベル" dgv.Columns.Add(colLabel) Dim colVal As New DataGridViewCheckBoxColumn() colVal .DataPropertyName = "VALUE" colVal .Name = "VALUE" colVal .HeaderText = "値" dgv.Columns.Add(colVal ) End Sub ※データのバインドについて DataTableをDataGridViewのDataSourceに設定しています。 ------------------------------------------------------------- 上記のコードでいうと、 「VALUE」列のコントロールの種類をセル単位で変更しようとしています。 何かいい方法がありましたら、アドバイスよろしくお願いします。 以上です。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ttkai00
- ベストアンサー率58% (18/31)
標準機能ではできないと思います。 面倒ですが、チェックボックスとコンボボックスの両方を切り替えて表示できるようなユーザーコントロールを作って、それをもとにカスタム列を作成すれば可能は可能でしょう。 参考URLに、カスタム列を作成する方法の説明がります。
お礼
ご回答ありがとうございます。 教えていただいたURLと下記のURLを参考に調べてみました。 http://dobon.net/vb/dotnet/datagridview/maskedtextboxcolumn.html しかし、同一列のセルのコントロールを変更していくとなると、 勉強不足もあり、なかなかうまく実現できていません・・・ うまくDataGridViewのイベント等を使ってできないかと考えてみましたが、 やはり行き詰ってしまいました。 もう少し方法を考えてみます。