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

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

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

Re[6]: datagridview でのコンボボックス表示について


(過去ログ 110 を表示中)

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

■65567 / inTopicNo.1)  datagridview でのコンボボックス表示について
  
□投稿者/ エルマ (1回)-(2013/03/08(Fri) 12:02:51)

分類:[VB.NET/VB2005 以降] 

Windows 7 ドットネットを使っています。

さまざまなページで検索したのですが、わからず教えてください。

データベースのテーブルをグリッドビューに表示し、特定の列にコンボボックス表示したいのですが
コンボボックスの列が最終列に追加されてしまいます。
DataPropertyName にテーブルの項目を指定すればいいと色々なところで記述があるのですが
うまくいきません。どなたか教えてください。尚、データグリッドビューのプロパティでは何も設定していません。

    ViewList.ReadOnly = False 'DatagridViewのロック

Dim SQLtext As String
Dim Table_SET As New DataTable

SQLtext = "SELECT cd_k as コード,nm_k as 名前,pt as パターン from table1"

Table_SET = DBselect(CN, SQLtext)
ViewList.DataSource = Table_SET

ViewList.AutoGenerateColumns = False

Dim weektable As New DataTable("weektable")

weektable.Columns.Add("Display", GetType(String))
weektable.Columns.Add("Value", GetType(String))
weektable.Rows.Add("月曜", "01")
weektable.Rows.Add("火曜", "02")
weektable.Rows.Add("水曜", "03")

Dim column As New DataGridViewComboBoxColumn()
column.DataSource = weektable
column.DataPropertyName = "パターン"  =>ここで3列目にコンボボックスにしたいのです。この表記で合っていますか?

column.ValueMember = "Value"
column.DisplayMember = "Display"

ViewList.Columns.Add(column)


    以上、宜しくお願いします。
引用返信 編集キー/
■65568 / inTopicNo.2)  Re[1]: datagridview でのコンボボックス表示について
□投稿者/ クイント (1回)-(2013/03/08(Fri) 12:51:42)
> Dim column As New DataGridViewComboBoxColumn()
> column.DataSource = weektable
> column.DataPropertyName = "パターン"  =>ここで3列目にコンボボックスにしたいのです。この表記で合っていますか?
>
> column.ValueMember = "Value"
> column.DisplayMember = "Display"
>
> ViewList.Columns.Add(column)

このコードでは新しいコンボボックス列columnをViewListに追加しているので、
このコンボボックスの列は最終列に追加されてしまうのはコード通りの動作です。

また、上記コードは、ViewListへのデータバインドの前に行う必要があります。
引用返信 編集キー/
■65570 / inTopicNo.3)  Re[2]: datagridview でのコンボボックス表示について
□投稿者/ エルマ (2回)-(2013/03/08(Fri) 13:53:41)
No65568 (クイント さん) に返信
回答ありがとうございます。
コンボボックスの設定を先にやってみたのですが、同じ現象です。

>> ViewList.Columns.Add(column)
この行があれば、最後に追加されますがなければ、
コンボボックスはどこにも表示されません。
もう少し探って見ます。
引用返信 編集キー/
■65571 / inTopicNo.4)  Re[3]: datagridview でのコンボボックス表示について
□投稿者/ クイント (2回)-(2013/03/08(Fri) 14:04:49)
> コンボボックスの設定を先にやってみたのですが、同じ現象です。
>
> >> ViewList.Columns.Add(column)
> この行があれば、最後に追加されますがなければ、
> コンボボックスはどこにも表示されません。

デザイナの段階でViewListに列を用意していないのですか?
デザイナの段階で必要な列を用意して、各列のDataPropertyNameに
バインドするテーブルの列名を設定すればいけそうな気がしますが、
どうでしょう。
引用返信 編集キー/
■65573 / inTopicNo.5)  Re[4]: datagridview でのコンボボックス表示について
□投稿者/ エルマ (3回)-(2013/03/08(Fri) 16:26:08)
No65571 (クイント さん) に返信
クイントさん、再び回答ありがとうございます。

デザイナで設定をしていませんでした。
以前設定した際に、プログラムを動かすと空白列ができてしまいやめましたが、
解説頂いたように、設定を逆にすることで
必要な列だけ表示されるようになりました。
指定した列にコンボボックスの矢印は出て来ましたが、
まだ月曜などの選択肢は入ってきていません。
おかげさまですこし前に進みました。
もう少しやってみます。

引用返信 編集キー/
■65574 / inTopicNo.6)  Re[5]: datagridview でのコンボボックス表示について
□投稿者/ クイント (3回)-(2013/03/08(Fri) 16:59:33)
> 指定した列にコンボボックスの矢印は出て来ましたが、
> まだ月曜などの選択肢は入ってきていません。

以下のコードを、ViewListにデータをバインドする前(例えばフォームロード時のイベントあたり?)で実行すれば、
コンボボックスに"月曜"などの候補が出てくると思います。

weektable.Columns.Add("Display", GetType(String))
weektable.Columns.Add("Value", GetType(String))
weektable.Rows.Add("月曜", "01")
weektable.Rows.Add("火曜", "02")
weektable.Rows.Add("水曜", "03")

頑張ってください。
引用返信 編集キー/
■65579 / inTopicNo.7)  Re[6]: datagridview でのコンボボックス表示について
□投稿者/ エルマ (4回)-(2013/03/09(Sat) 03:58:22)
No65574 (クイント さん) に返信

度々ありがとうございます。
form_loadに、場所も変えましたが同じ状況です。
viewlist.columns.add(column)を加えると
最終列に、うまい具合に入ってくるので
datapropertyへの接続がうまく言ってないということでしょうか。
何の値を入れても変わらないので、ここの設定がおかしいのかと
思うのですが、わかりません。
デザイナーには、列の名前、型、ヘッダーテキストを
入れているだけですが、他に設定することはありますか??
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -