DataGridView
(grdBOOK
)にDataGridViewComboBox
を追加しました。DataGridViewComboBox
は、ユーザーが選択できるように列3を置き換えます。 DataGridViewComboBox
のデフォルトを列3の値と同じに設定しようとしているので、値が正しい場合はユーザーの選択は不要です。DataGridViewComboBoxの既定値を既存のDataGridView列と同じに設定する
Iはnetから以下のコードを引っ張ったが、私はエラーを取得:
私はDataGridViewComboBoxCell value is not valid.
ComboBox
細胞が正常
DataGridView
セルとして扱うことができると思ったが、エラーが発生した(以下のコードを参照)文字列が
ComboBox
列に追加されたとき?私は数日間ネットとそれを罠に掛けましたが、何もうまくいかず、提案はどうですか?私見
ContextMenuStrip
を使用して、ネット上の多くの研究の後
public void BOOK_COMBO2()
{
DataGridViewComboBoxCell cb_cell = new DataGridViewComboBoxCell();
DataGridViewComboBoxColumn cb_col = new DataGridViewComboBoxColumn();
// Contract field
cb_col.Items.AddRange("YEARLY", "MONTHLY", "");
cb_col.FlatStyle = FlatStyle.Flat;
cb_col.HeaderText = "newCONTRACT";
cb_col.Width = 50;
cb_col.ValueType = typeof(string);
// Add ComboBox and test
grdBOOK.Columns.Insert(5, cb_col);
grdBOOK.Rows[14].Cells[4].Value = "zzz"; // No error adding string to normal dgv column
grdBOOK.Rows[14].Cells[5].Value = "xxx"; // Error adding string to dgvcombobx column
//copy old values to new combobox and set as default
foreach (DataGridViewRow item in grdBOOK.Rows)
{
item.Cells[5].Value = item.Cells[3].Value;
}
//hide original column
grdBOOK.Columns[3].Visible = false;
}
この「BOOK_COMBO2」メソッドはどこから呼び出していますか? – OhBeWise
さらに重要なのは、その列の値が常に "YEARLY"、 "MONTHLY"、 ""のいずれかのオプションであることを確認してください。値が1つでもない場合は、そのエラーが発生します。はい、大文字と小文字の問題 - 「年間」と「」はエラーを投げます。 – OhBeWise
メインクラスのメソッドを呼び出し、デザイン時にメインフォームにdatagridviewが追加されました。アイテムのリストにエラーがない場合、エラーはdatagridview列の1つからdatagridviewcombobox列に値をコピーすることによって発生します。このコード行は、 '' item.Cells [5] .Value = item.Cells [3] .Value; " – Zeus