質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

1回答

10824閲覧

DataGridViewのコンボボックスで初期選択を設定したい。

ChocoKorone

総合スコア13

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2020/06/28 14:33

現在データーグリッドビューのコンボボックスセルに、購入リストを一覧で入れるという機能を作っているのですが
以下のように初期表示で値が表示されず不便なので改善したいと考えています。
イメージ説明

検索した所、DataSourceプロパティでバインドしvalueに値を代入することで初期選択を解決する方法があるようですが

今回の場合行ごとに異なるコンボボックスの内容を入れる為上記の事ができず、途方に暮れてしまったため質問させていただいた次第です。

私の理想では画像で言う"¥13,000-モニター"を初期に表示したいです。(一番最初の欄を表示したい)
どうぞよろしくお願いいたします。


該当コード

C#

1             //同じidかつ高い順でソート 2 var data = (from t in Subtable.AsEnumerable() 3 where t.Field<Guid>("Guid") == guid 4 orderby t.Field<uint>("Money") descending 5 select t).CopyToDataTable(); 6 7 //コンボボックスセルに入力 8 DataGridViewComboBoxCell cell= (DataGridViewComboBoxCell)MoneyDisplay["PurchaseList", index]; 9 for (var i = 0; i < data.Rows.Count; i++) 10 { 11 var row = data.Rows[i]; 12 cell.Items.Add(String.Join("-",String.Format("{0:C}", row.Field<uint>("Money")), row.Field<string>("Item"))); 13 } 14 15 } 16 //新しい方順に並べる 17 MoneyDisplay.Sort(MoneyDisplay.Columns["RegistrationTime"],ListSortDirection.Descending);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

質問のようにItemsに直接addしていくような方法の場合、個別のcellにValueプロパティでItems先頭の文字列をセットすれば選択状態になります。

c#

1for (var i = 0; i < data.Rows.Count; i++) 2{ 3 var row = data.Rows[i]; 4 cell.Items.Add(String.Join("-",String.Format("{0:C}", row.Field<uint>("Money")), row.Field<string>("Item"))); 5} 6cell.Value = cell.Items[0]; //追加したItemの先頭を選択値とする

ちゃんと構造的に解決するなら、コンボボックス用のデータクラスか構造体を作ってDisplayMemberとValueMemberを用いた方法で実装することをお勧めします。

投稿2020/06/28 15:53

hope_mucci

総合スコア4447

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ChocoKorone

2020/06/28 21:55

的確な回答とアドバイスをありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問