private void update_Click(object sender, EventArgs e)
{
//update
if (string.IsNullOrEmpty(dataGridView1.CurrentRow.Cells["location"].Value as string))
{
DialogResult dialog = MessageBox.Show("Update?",
"", MessageBoxButtons.YesNo);
if (dialog == DialogResult.Yes)
{
try
{
da.Update(ds.Tables[0]);
MessageBox.Show("Data updated");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
con.Close();
button1_Click(sender, e);
}
}
if (dialog == DialogResult.No)
{
MessageBox.Show("No change has been made.");
button1_Click(sender, e);
}
}
else
{
MessageBox.Show("location filled row can not be updated.");
button1_Click(sender, e);
}
}
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Delete)
{
if (string.IsNullOrEmpty(dataGridView1.CurrentRow.Cells["location"].Value as string))
{
DialogResult dialog = MessageBox.Show("Delete?",
"", MessageBoxButtons.YesNo);
if (dialog == DialogResult.Yes)
{
try
{
SendKeys.Send("{DEL}");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
MessageBox.Show("Row has been deleted.");
da.Update(ds.Tables[0]);
}
}
if (dialog == DialogResult.No)
{
MessageBox.Show("No change has been made.");
dataGridView1.ClearSelection();
}
}
else
{
MessageBox.Show("location filled row can not be deleted");
button1_Click(sender, e);
}
}
}
Используя компоновщик команд, если местоположение заполнено, строка не может быть обновлена или удалена.Это работает хорошо .. хорошо по большей части.Но, как вы можете видеть, он выбирает текущую строку, поэтому, если строка похожа на пустое местоположение, заполненное местоположение, кнопка обновления после удаления не будет работать, потому что она попытается выбрать следующую строку, заполнение которой будет удалено, когда удаляется пустая строка местоположения.
Я пытался обновить комментарий таблицы после удаления, но он не будет зафиксирован, пока я не нажму кнопку обновления, которая будет работать только тогда, когда я вручную выберу пустую строку местоположения после удаления одной строки с пустым местоположением.
Как мне сделать эту работу?