私は同様の問題を持っています。最初のタブページにグリッドがあり、2番目のタブページにテキストボックスがあり、すべて同じバインディングソースにバインドされています。 グリッドでコンテンツが変更されますが、行の開始は変更されません。
私のコードはでした:
DataRow dataRow = ((DataRowView)bindingSource1.Current).Row;
if(dataRow.RowState != DataRowState.Modified)
私は修正rowStateを持つことが期待しました。
不足しているコードは:
bindingSource1.EndEdit();
ここ
全体のソリューション:
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
if (tabControl1.SelectedIndex == 0)
{
bindingSource1.EndEdit();
DataRow dataRow = ((DataRowView)bindingSource1.Current).Row;
if(dataRow.RowState != DataRowState.Modified)
{
return;
}
DialogResult userOption = MessageBox.Show("Save?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (userOption == System.Windows.Forms.DialogResult.Yes)
{
Save();
}
}
}
私のソリューション:私は1つの形に似たような状況に遭遇してきたと私はその問題が気づいた
更新プログラムを回答として投稿し、それを受け入れられた回答としてマークしてください。 – cadrell0