|
分類:[C#]
調べても同様の現象が見当たらなかったので どうかご教授いただければと思います。
さて、その問題ですが
DataGridViewに何列か作ったうちの一つをコンボボックス(DataGridViewComboBoxColumn)にしたいと思っているのですが、
DataPropertyNameプロパティにテーブルの項目名を指定すると以下のエラーが出てしまいます。
--------------------------------------- DataGridViewで次の例外が発生しました
System.Format.Exception: DataGridComboBoxCellの値が有効ではありません
この規定のダアイログを置き換えるには、DataErrorイベントをハンドルしてください。 ---------------------------------------
試行錯誤の末、 DataPropertyNameプロパティに列の名称(NAMEプロパティ)を指定することで コンボボックスは使用できるようにはなりましたが、 別の項目に移動した途端値がnullになってしまうので結局意味がありませんでした。
参考までに、コードも載せておきます。
DataTable MntTable = new DataTable("MonthTable"); MntTable.Columns.Add("Disp", typeof(string)); MntTable.Columns.Add("Val", typeof(int));
MntTable.Rows.Add(" ", DBNull.Value); MntTable.Rows.Add("あ", 1); MntTable.Rows.Add("い", 2); MntTable.Rows.Add("う", 3);
DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn();
column.DataPropertyName = "数値";
column.DataSource = MntTable; column.ValueMember = "Val"; column.DisplayMember = "Disp";
column.HeaderText = "コンボ数値"; column.Name = "TCol_COM数値";
this.dgvTEST.Columns.Insert(1, column);
よろしくお願いいたします。
|