- - PR -
DataGridViewのDataGridViewComboBoxColumnで例外
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-09-09 13:53
DataGridViewにカラムを追加して
NameプロパティをDgvColumnType ColumnTypeプロパティをDataGridViewComboBoxColumn に設定しました。 DataGridView内のコンボボックスの項目を設定するために 下記を記述しました。 DgvColumnType.DataSource = new Color[]{Color.Black,Color.Red}; 実行時に、a,b,cはリスト内にあるのですが、選択すると 「DataGridViewComboBoxCellの値が有効ではありません」 と例外が発生します。 なにが悪いのか分かりません。 ご助言願います。 環境 Windows2000 Visual C# 2005 Express Edition | ||||
|
投稿日時: 2007-09-09 14:31
選択されたデータ(Color型)をデータソース(ComboBoxColumnのではなくDataGridViewの)に
バインドできないのではないでしょうか? DataGridViewはバインドして使っていますか? バインドしている場合、何にバインドしていますか? ComboBoxCellに対応している列の型は何ですか? その辺りを考慮して、Color 型ではなく、 データソースにそのまま格納できる型で ComboBoxColumn のデータソースを設定するか、 あるいは CellParsing イベントで適切な型変換を行う必要があると思います。 | ||||
|
投稿日時: 2007-09-09 22:26
DataGridViewには何もバインドしていません。
それが原因でしょうか? | ||||
|
投稿日時: 2007-09-09 23:13
そう思うなら試せばいいのに。 | ||||
|
投稿日時: 2007-09-10 01:39
回答する側はずいぶんと乱暴な言葉でもいいんですね・・・
| ||||
|
投稿日時: 2007-09-10 01:59
確かにそう感じられるかもしれませんね
しかも、今回のように誤ったアドバイスをしても なんらお咎めなし。 DataGridViewをバインドさせる必要はありませんよ | ||||
|
投稿日時: 2007-09-10 07:07
そうか?
掲示板で聞いたら、誰か親切な人がたまたま読んで、答えて、自分がそれを見るまで、答えを得られない。 でも、自分でやってみたら、数分後には答えが得られる。 この差はとても大きいと思う。 どこかで質問者が「私の手間を考えてください」とか曰っていたが、回答者の手間は考えてくれないわけ?そこまで手取り足取りを要求するなら、それなりの対価を払おうよ。 | ||||
|
投稿日時: 2007-09-10 09:34
誤解させたようですみません。
バインドしなければいけないと書いたつもりはありません。 DataGridView はバインドさせて使うケースが多いので、 バインドしている前提で説明しました。 バインドしていない場合は、DataGridViewColumn.ValueType に 設定されている型に変換できない場合に、その例外が発生します。 改めて読み直して気づいたのですが、 DataGridViewComboBoxColumn のデータソースに設定したのは Color の配列で、 リストにあるのは「a,b,c」なんですか? よく状況が飲み込めないです。 その辺りをもう少し詳しく書いて頂けませんか? 色をリストから選ばせたいのかと思ったのですが。 |