2011-09-05 87 views
0

我有一个form1form2 ..删除在数据网格视图中的行,当按钮被点击

form1中:我有一个按钮列一个DataGridView。当我点击任意行的按钮单元格时,相应的行值将被转移到form2。这工作正常。

表格2:通过使用setter和getters我得到了来自form1的值,我代表了form2中文本框的值,这很好。

我在表单2中有一个复选框。当我点击复选框时,我需要删除表格1中的datagrid视图中的行(当我单击按钮单元格时,其行值被转换为表单2。行将从form1中的datagrid视图中删除)。

我该如何解决这个问题?

+0

什么问题? – fardjad

+0

我不知道如何从另一个表单中删除datagrid视图中的一行....当我单击表单2中的复选框时,相应的行将从form1中的datagrid视图中删除。 –

+0

'Form2'归属于Form1对吧?您应该在Form1中(在Form1.designer.cs中)设置DataGrid访问修饰符'public',以便从'Form2'访问它。 – fardjad

回答

5

当您将数据从Form1传递到Form2时,还传递行索引。它会帮助您轻松删除该行。

要么标记Form1中publicDataGridView或把它作为一个构造参数Form2,然后调用DataGridView1.Rows.RemoveAt(rowIndex);rowIndex指定的索引在删除行。

+0

非常感谢您的回答...在删除行后,我如何更新表单1中的datagrid视图,您是否会告诉任何想法.... –

+0

您是否尝试过使用DataGridView.Refresh()? – Waqas

3

如果您知道如何从同一表单的网格视图中删除记录,这很容易。

您可以按照与堆栈 的答案相同的方式溢出问题Updating the gridview in one form

作为事件参数,您可以传递记录ID。

您可以使用RemoveAt方法从网格视图中删除记录。

DataGridView1.Rows.RemoveAt(deleteIndex); 

但是,如果您共享数据源并将其从表单2中删除,则需要再次绑定数据以从网格中删除。 (请参阅如何更新gridview的How to: Implement Property Change Notification

如果你删除它在Form1并直接从GridView控件,你不需要重新绑定。

+0

非常感谢..我已经尝试过事件处理程序,但不幸的是,这并不适合我......我不知道如何删除一个记录在同一个窗体中它自己..任何替代解决方案请... –

+0

'我不dont知道如何删除相同形式的记录它自己dataGridView.Rows.Remove()? – fardjad

+0

@DSW我如何更新从form2的datagrid视图,你会提出任何想法... –

1
foreach (DataGridViewRow item in this.dataGridView1.SelectedRows) 
{ 
    dataGridView1.Rows.RemoveAt(item.Index); 
} 
+2

考虑为您的答案提供解释 – arghtype

相关问题