我有一个datagridview,其中包含用户的个人信息。我的datagridview正在从数据库中检索数据。在填充datagridview之后,我添加了2个DatagridViewLinkColunm。一个用于编辑所选行的内容,另一个用于保存所做的更改。我想要实现的是,如果用户选择一行并单击"编辑"链接标签,将编辑所选行(BeginEdit = true)。但是,如果用户选择另一行并且他/她没有单击“保存”按钮,则会出现一个消息框,询问用户是否要保存更改。
我尝试在CellEnter事件中获取当前行和当前列,并检查在CellContentClick事件中选择的当前行和上一行,但我没有达到我想要的效果。
以下是代码......
private void DataGridViewUserList_CellEnter(object sender, DataGridViewCellEventArgs e)
{
currentRow = e.RowIndex;
currentColumn = e.ColumnIndex;
}
private void DataGridViewUserList_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (currentColumn == 6)
{
if (rowNumberToBeEdited < 0)
{
rowNumberToBeEdited = e.RowIndex;
goto EnableEditing;
}
if (rowNumberToBeEdited != e.RowIndex)
{
DialogResult dialogResult = MessageBox.Show("Do you want to save the changes you've made", "ACOS-LITE Multi-Application Demo", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
// save data
}
rowNumberToBeEdited = e.RowIndex;
}
EnableEditing:
DataGridViewUserList.CurrentCell = DataGridViewUserList[1, currentRow];
DataGridViewUserList.BeginEdit(true);
DataGridViewUserList.CurrentCell = DataGridViewUserList[2, currentRow];
DataGridViewUserList.BeginEdit(true);
DataGridViewUserList.CurrentCell = DataGridViewUserList[3, currentRow];
DataGridViewUserList.BeginEdit(true);
DataGridViewUserList.CurrentCell = DataGridViewUserList[4, currentRow];
DataGridViewUserList.BeginEdit(true);
}
}