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

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

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

Re[2]: C# DataGridViewのコンボボックスの初期表示


(過去ログ 134 を表示中)

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

■79097 / inTopicNo.1)  C# DataGridViewのコンボボックスの初期表示
  
□投稿者/ はな (4回)-(2016/03/07(Mon) 17:14:47)

分類:[.NET 全般] 

C#のDataGridViewのコンボボックスで選択リストにない値を初期表示する方法はないでしょうか?

┌──┬─────────────────┬───┬─────┐
│1/2 │お年玉                            │\10000│臨時収入▼│
├──┼─────────────────┼───┼─────┤
│1/2 │ガム                              │  \100│お菓子  ▼│
├──┼─────────────────┼───┼─────┤
│1/3 │プリン                            │  \150│デザート▼│
├──┼─────────────────┼───┼─────┤
│1/4 │バナナ                            │  \100│果物    ▼│
├──┼─────────────────┼───┼─────┤
│    │                                  │      │          │
└──┴─────────────────┴───┴─────┘
このDataGridViewを作った後で気が変わって科目を
┌─────────┐
│臨時収入          │
├─────────┤
│お菓子            │<---削除
├─────────┤
│デザート          │<---削除
├─────────┤
│果物              │<---削除
├─────────┤
│おやつ            │
└─────────┘
編集した後でもDataGridViewの初期表示は変更したくないので
作りたいコンボボックス
┌──────────────┐
│お菓子                    ▼│<---初期表示は削除されたアイテム
├──────────────┤
│臨時収入                    │しかし選択候補には削除済みアイテムは表示したくない
│おやつ                      │
│                            │
└──────────────┘

初期値をリスト外のものにするコンボボックスは作成できますか?

System.ArgumentException: DataGridViewComboBoxCellの値が有効ではありません
のエラーを回避したいです。

よろしくお願いいたします。

引用返信 編集キー/
■79098 / inTopicNo.2)  Re[1]: C# DataGridViewのコンボボックスの初期表示
□投稿者/ shu (831回)-(2016/03/07(Mon) 18:02:54)
No79097 (はな さん) に返信

通常のコンボボックスでいうDropDownListのスタイルなので
無理ではないかと思います。

コンボを使用せずContextMenuStripとか別の選択フォームを開く
などの実装にしてみてはどうでしょう?
引用返信 編集キー/
■79129 / inTopicNo.3)  Re[2]: C# DataGridViewのコンボボックスの初期表示
□投稿者/ はな (5回)-(2016/03/10(Thu) 12:50:22)
shuさま
回答ありがとうございます。
いろいろ試行錯誤していてお礼が遅くなりました。

試行錯誤の結果、
DataGridViewCellStyleのNullValue
で対応してみました。

DataRow dr_科目 = dt_科目.Rows.Find(reader.GetInt32(3));
String str_科目 = (String)dr_科目["科目"];
if (DBNull.Value.Equals(dr_科目["削除日"]))
{
dataGridView1[3, rowIndex].Value = str_科目;
}
else
{
DataGridViewCell cell_科目 = dataGridView1[3, rowIndex];
DataGridViewCellStyle style_科目 = cell_科目.Style;
style_科目.NullValue = str_科目;
}


解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -