私はdatagradviewを使用しています。移動する前に現在の行を保存するようにユーザーに求めています。次のイベントを使用しようとしていましたが、私はセーブイベントに当たった。選択を使用するときの循環ループ
private void dgStock_SelectionChanged(object sender, EventArgs e)
{
if (isDirty == true)
{
isSavedFromRow = true;
btnSaveDetails_Click(sender, e);
isDirty = false;
}
}
選択変更イベントでの問題は、行は、ユーザーが自分の新しい行ではなく、現在の行を保存考えることができるように変更された後にこの問題が発生しています。
私も円形ループに巻き込まれているようですが、メッセージボックスが何回も消えてしまっているのですか?ユーザーがテキストボックスにキーを押したときにisDirtyをtrueに設定するだけです。
if (isDirty == true)
{
DialogResult _result = MessageBox.Show("Are you sure you wish to upate Live Product Information", "Save Changes", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
if (_result == DialogResult.Yes)
{
updateStock();
_trackChanges.Clear();
isDirty = false;
}
}
これはキーダウン時に私の汚れた旗をセットしているので、これは私のような問題を避けるための最良の方法だと感じました。
private void txtDescription_KeyDown(object sender, KeyEventArgs e)
{
isDirty = true;
btnSaveDetails.Enabled = true;
}