0

コンボ ボックス (DataGridViewComboBoxColumn) を含む DataGridView があります。このコンボ ボックスには、一連の設定値が入力されます。これらの設定値は、有効な値のみがコンボ ボックスに表示されるように無効にすることができますが、無効な値を使用する既存のエントリ (レコード) は引き続き表示する必要があります。

グリッド内のアイテムを正常にループ処理できます。アクティブでなくなった値 (つまり、DataGridViewComboBoxCell アイテムの一部) がレコードにある場合は、その値をその DataGridViewComboBoxCell のアイテムに追加するだけです。

問題:

恐ろしい「DataGridViewComboBoxCell 値が無効です」というメッセージが表示されないように、このコードを配置する場所が見つかりません。

たとえば、このコードを DataGridView の Paint イベントに入れると、グリッドは完全に機能します。値の編集/更新に問題はなく、表示に関しても問題はありません (非アクティブな値が常に表示されます)。エラー。

質問:

アクティブな値がコンボ ボックス (DataGridViewComboBoxColumn) に追加された後、このエラーを回避するためにレコードがバインドされる前に、「非アクティブな」値を追加するコード (または方法) をどこに追加できますか?

4

1 に答える 1

1

datagridview エラーをキャッチして何もしないのはどうですか。

void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
   e.Cancel = true;
}

// Add code in user interface
dataGridView1.DataError += 
    new DataGridViewDataErrorEventHandler(dataGridView1_DataError);
于 2009-04-29T22:34:26.753 に答える