我在窗口中创建了一个DataGridView和2个button,一个为编辑,一个为保存
private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex == EditingRowIndex)
{
dataGridView1.BeginEdit(true);
}
}
private void dataGridView1_RowLeave(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex == EditingRowIndex)
{
if (MessageBox.Show("保存修改?", "提示:", MessageBoxButtons.YesNo) == DialogResult.No)
{
bindingSource1.CancelEdit();
EditingRowIndex = -1;
return;
}
EditingRowIndex = -1;
dataGridView1.EndEdit();
bindingSource1.EndEdit();
SaveData();
}
}
private void btnSave_Click(object sender, EventArgs e)
{
SaveData();
}
private void btnEdit_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count > 0)
{
EditingRowIndex = dataGridView1.SelectedRows[0].Index;
dataGridView1.ClearSelection();
dataGridView1.CurrentCell = dataGridView1[0, EditingRowIndex];
dataGridView1.BeginEdit(true);
}
}
当我编辑完了点击保存按钮时,窗口就无法关闭,且btnEdit的点击事件也不执行。如果我把RowLeave里的EditingRowIndex = -1;放到dataGridView1.EndEdit();后面的话点击保存后窗口是能关闭的,但datagridview又有一个单元格处于编辑状态。
还望高手们帮我看下。
private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex == EditingRowIndex)
{
dataGridView1.BeginEdit(true);
}
}
private void dataGridView1_RowLeave(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex == EditingRowIndex)
{
if (MessageBox.Show("保存修改?", "提示:", MessageBoxButtons.YesNo) == DialogResult.No)
{
bindingSource1.CancelEdit();
EditingRowIndex = -1;
return;
}
EditingRowIndex = -1;
dataGridView1.EndEdit();
bindingSource1.EndEdit();
SaveData();
}
}
private void btnSave_Click(object sender, EventArgs e)
{
SaveData();
}
private void btnEdit_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count > 0)
{
EditingRowIndex = dataGridView1.SelectedRows[0].Index;
dataGridView1.ClearSelection();
dataGridView1.CurrentCell = dataGridView1[0, EditingRowIndex];
dataGridView1.BeginEdit(true);
}
}
当我编辑完了点击保存按钮时,窗口就无法关闭,且btnEdit的点击事件也不执行。如果我把RowLeave里的EditingRowIndex = -1;放到dataGridView1.EndEdit();后面的话点击保存后窗口是能关闭的,但datagridview又有一个单元格处于编辑状态。
还望高手们帮我看下。
这里哪里关闭窗口?
adapter.Update((DataTable)bindingSource1.DataSource);adapter 是OleDbDataAdapter的一个实例
关闭窗口就是点窗口上的XX
根据你的思路我试了一下,没找到能不用Cell Enter而使整行处于编辑状态的,还望再多提醒一点.....after all
谢谢你这么多的回帖,谢谢。