日期:2014-05-18  浏览次数:21121 次

C#winform父窗口获取子窗口的datagridview的数据源
本人菜鸟,问题简单勿喷,望指教!
eg:form1父窗口,form2子窗口
form1.button1,form1.textbox1,form2.textbox1,form2.datagridview1
已知单击form1.button1时,可以通过form1.textbox1.text=Application.OpenForms["form2"].Controls["textbox1"].Text.ToString()的方式去获取子窗口的textbox的值;
但是,DataSet ds=Application.OpenForms["form2"].Controls["datagridview1"].datasource时,却报错,提示Controls并不包含datasource的定义;
问:如何才能在form1.button1中获取到form2.datagridview1的数据源,或者说包含的数据;

------解决方案--------------------
子窗口定义
private static Search mainForm;
public static From2 midi
{
get
{
return mainForm;
}

}
public From2 ()
{
InitializeComponent();
mainForm = this;
}
public DataSet Getdatagridview1()
{
DataSet ds= datagridview1.DataSource ;
return ds
}

父窗口通过

From2.midi.Getdatagridview1() 直接调用
------解决方案--------------------
DataTable dt = (DataTable)((DataGridView)Application.OpenForms["Form2"].Controls["dataGridView1"]).DataSource;