C# 从其他表单更新datagridview中的选定行
我有两个表单Form1和Form2,我想从Form2更新Form1中的datagridview 首先,我选择Form1中datagridview的行,然后单击按钮打开Form2。 在表格2中,我输入新数据,然后保存它C# 从其他表单更新datagridview中的选定行,c#,winforms,datagridview,C#,Winforms,Datagridview,我有两个表单Form1和Form2,我想从Form2更新Form1中的datagridview 首先,我选择Form1中datagridview的行,然后单击按钮打开Form2。 在表格2中,我输入新数据,然后保存它 我该怎么做?您可以在Form1上创建一个公共方法来插入行。我们称之为LoadData。这将接收一组参数,这些参数指示表格2上的数据 public void LoadData( ... ) { // load the data into the data grid } 然后
我该怎么做?您可以在
Form1
上创建一个公共方法来插入行。我们称之为LoadData
。这将接收一组参数,这些参数指示表格2
上的数据
public void LoadData( ... )
{
// load the data into the data grid
}
然后将新构造函数添加到表单2
:
public Form2(Form1 referrer)
{
_referrer = referrer;
}
其中\u referer
是一个私有字段,键入为表单1
:
private Form1 _referrer;
var f = new Form2(this);
然后在加载Form2
时,传入this
,因为您在Form1
:
private Form1 _referrer;
var f = new Form2(this);
最后,当您要从表单2
添加数据时,请执行以下操作:
_referrer.LoadData( ... );
我的解决方案与@Michael Perrenoud的类似。您的目的是将值从form1传递到form2。如何通过?通常需要通过form2的构造函数将form1中的对象传递给form2。那么,通过什么呢?其他人说传递form1本身或传递gridview控件,但我更喜欢传递您真正想要在form2中使用的数据,为什么?因为当你传递一个控件(表单或gridview)时,你需要分析并获取数据,然后在表单2中添加到gridview2,想想看,当你从表单1传递控件时,也许有一天你会用其他控件(如listview或treeview)替换gridview,甚至有一天你可能会放弃表单1,因此,您需要修改和重构表单2。但如果只传递数据,则可以重用form2。以下是我的示例代码:
首先,添加一个引用传递数据的私有字段
private object mydata = null;
public void FillData( ... )
{
if(mydata != null)
{
//add the data into gridview
}
}
添加一个函数,用传递的数据填充gridview
private object mydata = null;
public void FillData( ... )
{
if(mydata != null)
{
//add the data into gridview
}
}
然后,在Form2中添加一个新构造函数:
public Form2(object data)
{
_mydata = data;
}
当您想要显示form2时,请从gridview1获取数据
void ShowData()
{
object mydata = null;
//get the data from selected rows and set to mydata
Form2 f = new Form2(mydata);
f.ShowDialog();
}
表格1中的MyDataGridView显示示例:id、名称、地址。我能不能只要一个。是否将选定行中的id值作为字符串获取?2.将此字符串值发送到Form2。3.使用mysqlCommand更新数据,例如:“更新我的_data_base Set bla bla bla Where id=“+String from Form1。如何将我得到的字符串发送到Form2?@user2029546,以与我向您展示的如何将Form1
@user2029546插入Form1
的方法相同的方式插入到Form2
上的附加构造函数中,插入字符串
。将字符串
存储为私有
字段,就像我用Form1
显示的那样。基本上把Form1
上的Form2
所有成员都改成string
。你能举个简单的例子吗,我很困惑@Michael Perrrenoud我想你最好一步一步地帮我,我完全不知道。字符串eds=Convert.ToString(dataGridView1.SelectedRows[0]。单元格[0]。值);2.帮助我将此字符串发送到Form2