0

私のユーザーは、まるで Excel を使用しているかのように、スプレッドシートにコピーして貼り付けることができる、製品データベースへの大量のアップロード/編集を行う方法を望んでいます。これは私が考えるとうんざりしますが、私は上司ではないので、それはそれです. すべてをデータグリッド ビューにダンプし、そこで編集できるようにします (うーん)。ただし、特定の値 (サイズなど) を必要とするものはたくさんありますが、たとえば、すべてが XLarge である必要がある場合に、それらを XL、XLarge、X-Large、xlarge に入力したくありません。だから私はコンボボックスが必要です。簡単ですが、表示する列を選択できるようにしたいので、列の種類を指定するだけの静的テーブルではありません。適切な列をコンボボックス列にして動的に作成し、それらにデータを入力することができました。私はそれらを次のように埋めます:

for (int y = 0; y < table.Rows.Count; y++)
{
    viewMassEdit.Rows.Add();
    for (int x = 0; x < table.Columns.Count; x++)
        viewMassEdit.Rows[y].Cells[x].Value = table.Rows[y][x].ToString();
}

すべてのデータが正しく入力されます。例外なく。ここで問題が発生します。これにより大きなテーブルが作成され、縦または横にスクロールし始めると、これらの未処理のエラー メッセージが定期的にポップアップ表示されます。

ここに画像の説明を入力

それは何について話しているのですか?そこに値を入れると問題なく受け入れられましたが、テーブルをナビゲートしているときにどのように問題が発生しますか? さらに、このエラーをどこで処理しますか?

4

2 に答える 2

1

エラーを「処理」するには、イベントDataGridView.DataErrorにハンドラーを追加します。

void InitializeComponent() {
   // ... //

   this.DataGridView.DataError += this.DataGridView_DataError;
}

void DataGridView_DataError(object sender, DataGridViewDataErrorEventArgs e) {
   e.ThrowException = false;
}

おそらく、そのDataGridViewDataErrorEventArgsをデバッグし、例外などを確認して、最初に発生するのを防ぐことができます。

于 2011-06-22T20:33:28.430 に答える
0

エラーを処理する場所を知るには、[処理された例外を中断]をオンにしてデバッグします([デバッグ]-> [例外])。これは、ソースを特定するのに役立ちます。

于 2011-06-22T20:25:43.707 に答える