datagridview のデフォルト エラー ダイアログ ボックスが表示されます。そこには、dataerror イベントを処理すると書かれています。データテーブルから myy DGV にデータをロードしています。新しい行を追加しようとすると、(*) が付いた空の行をクリックします。新しい行セルにいくつかの値を入力し始めると、dataerror が表示され、無限ループに入ります。
DataGridViewDataError.context = display.
Error: Index 3 does not have a value.
私のグリッドには 3 つの行があり、ここでは新しい行のインデックスは 3 になります。
DGV が読み込まれるコードは次のとおりです。
private void frmPlant_Load(object sender, EventArgs e)
{
Program.fMain = this;
Program.LoadAllForms();
string selectCommand = "select * from T1";
FillData(selectCommand);
}
private void FillData(string selectCommand)
{
using (SQLiteConnection conn = new SQLiteConnection(connString))
{
conn.Open();
dataGridView1.AutoGenerateColumns = true;
da = new SQLiteDataAdapter("selectCommand", connString);
ds = new DataSet();
commandBuilder = new SQLiteCommandBuilder(da);
da.Fill(ds, "T1");
dt = ds.Tables[0];
dataGridView1.DataSource = ds.Tables[0];
dataGridView1.DataMember = "T1";
dataGridView1.Columns["TID"].ReadOnly = true;
}
}
コードのどこでこれが起こっているのか正確にはわかりません。DataError イベントを処理しました。UserAddedRows、RowsValidating が役立つかどうかわからない
private void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
MessageBox.Show(e.Context.ToString());
e.Cancel = true;
}
ありがとうサン