Winforms DataGridView详细信息编辑表单

时间:2016-12-05 21:52:31

标签: c# winforms datagridview

我在C#和SQL Server 2012中使用Visual Studio 2010为数据库编写了Winforms应用程序。我有一个带有DataGridView控件的表单。我希望能够双击一行并打开一个新表单,该表单的行内容已准备好进行编辑。我已经研究过并找到了一个我想在这里做的例子:

https://www.codeproject.com/articles/19735/datagridview-with-detail-edit-form-vs

我发现的示例的问题是作者使用drop和drag / wizard方法来设置他的数据交互,我在代码中做了所有事情,所以我很难理解这个例子。我在C#中寻找一个简单的例子,它展示了如何从双击的记录中打开一个包含一段数据的表单,然后将其保存到数据库中。

2 个答案:

答案 0 :(得分:0)

c#中的DataGridView(您提供的示例是Visual Basic,而不是c#)没有rowdoubleclick事件。如果你在使用datagridview时已经死定,那么“解决方法”就是处理单元格双击事件。

然后,单元格双击事件的处理程序将显示一个新表单,用户可以在其中输入所有数据。然后使用数据更新数据库并刷新datagridview。

我不会为你编写代码。但上面应该会告诉你如何实现它。尝试实现它,然后更新你的问题和我自己,其他人可以帮助你调试。

双击MSDN:https://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.celldoubleclick(v=vs.110).aspx

答案 1 :(得分:0)

不幸的是,我无法对一个非常广泛的问题给出非常具体的答案。这是我的建议。

您可以向datagridview的CellMouseDoubleClick事件添加事件处理程序。 在datagridview类实现中添加...

CellMouseDoubleClick += DataGridView_CellMouseDoubleClick;

private void DataGridView_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) {
    //replace with custom form that will get passed the 
    //relevant data your datagridview uses
    Form editForm = new Form();
}

从这里变得更加复杂,这就是为什么我不能花费数小时专门回答你的整个问题。