编辑DataGridView选中的行

时间:2013-12-09 06:12:50

标签: c# datagridview

我有一个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);
        }


    }

0 个答案:

没有答案