C# 3.0 将数据从一个窗体复制到另一个窗体
我有一个带有网格的表单,我想根据用户单击“编辑”按钮时选择的行将信息从第一个表单传递到第二个表单 最好的方法是什么?如果用户希望添加新表单或使用第一个表单datagrid的选定行中的值填充第二个(编辑)表单,我应该如何决定表单应如何为空? 行值是同一对象的所有属性 我可以删除和添加一个新的对象,它正在编辑一个我很难处理的现有对象,我应该如何加载第二个表单 我当前正在创建一个实例,然后是instance.Show()C# 3.0 将数据从一个窗体复制到另一个窗体,c#-3.0,C# 3.0,我有一个带有网格的表单,我想根据用户单击“编辑”按钮时选择的行将信息从第一个表单传递到第二个表单 最好的方法是什么?如果用户希望添加新表单或使用第一个表单datagrid的选定行中的值填充第二个(编辑)表单,我应该如何决定表单应如何为空? 行值是同一对象的所有属性 我可以删除和添加一个新的对象,它正在编辑一个我很难处理的现有对象,我应该如何加载第二个表单 我当前正在创建一个实例,然后是instance.Show() 这是打开一个空白表单,但是当用户想要编辑现有记录时,我想根据所选行将其与对象一起
这是打开一个空白表单,但是当用户想要编辑现有记录时,我想根据所选行将其与对象一起加载。我建议在一个表单中公开另一个表单可以使用的事件 这是官方教程
基本上是这样的
// Source form
public event YourEventHandlerType EventName;
// Wherever the event occurs
EventName.Invoke(...);
// Destination form
this.referenceToSourceForm.EventName += MyEventHandler(...);
因此,您需要在目标表单中引用源表单,否则您需要在两个表单之外设置事件处理。假设您的表单1是带有数据网格(grdMyData)的表单,它显示MyClass类实例的行,而表单2是用于编辑给定行数据的表单。 当用户单击“编辑”时,可以使用以下命令:
private void btnEdit_Click(sender e, EventArgs arg)
{
if (grdMyData.SelectedRows.Count == 0)
return; //nothing to do
MyClass selectedRow = (MyClass)grdMyData.SelectedRows[0].DataBoundItem;
Form2 frm2 = new Form2(selectedRow);
if (frm2.ShowDialog() == DialogResult.OK)
{
//do something if needed
}
}
这段代码假设您有适当的Form2构造函数,该构造函数接受它所使用的对象类型。当您使用Form2时,数据将自动影响Form1的显示,因为它们使用的是同一对象的实例。Web表单、Windows表单或WPF表单?谢谢,我终于想出了用该对象作为参数创建另一个构造函数的办法。这么简单的解决方案就盯着我看。