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

关于数据在两个窗口之间传递的问题
frmMain是主窗口,点击按钮,跳出另一个窗口frmFind后,在frmFind中点击按钮查询结果存于一个dataTable中,怎么把所查询的结果返回给frm中的datagridview

------解决方案--------------------
frmFind中写个方法

public void FangFa()
{
frmMain fm=new frmMain();
fm.chuanzhi(dataTable);
fm.show();
}

frmMain页面

public void chuanzhi(DataTable td)
{
this.datagridview.DataSouce=td;

}


------解决方案--------------------
public class Form1
{
private button_click(object sender,eventagrs e)
{
Form2 f2 = new Form2(this.datagridview);
f2.ShowDailog();
}
}
public class Form2
{
private DataGridView dgv ;
public Form2(DataGridView datagridview)
{
dgv = datagridview;
}
private btnQuery_Click(object sender,eventargs e)
{
DataTable dtResult = GetResult();
dgv.DataSource = dtResult;
}
}

===============================================================================
public class form1
{
private bt_click(object sender,eventargs e )
{
form2 f = new form2();
if (f.showdailog() == dialogresult.ok)
{
this.dgv.datasource = f.ReturnTable;
}
}
}
public class form2
{
private datatable tbResult;
public datatatable ReturnTable
{
return tbResult;
}
private void btn_click(object sender, eventargs e)
{
tbResult = GetDataTable();
this.DialogResult = DialogReslt.Ok;
this.close();
}
}
===========================================================================
public class form2
{
public delegate void OnQueryFinished(DataTable tbResult);
public event OnQueryFinished QueryFinished;
 
private void btnQuery_Cliceked(object sender,eventargs e )
{
DataTable tbResult = GetDataTable();
if ( QueryFinished != null )
QueryFinished( tbResult );
}
}
public class Form1
{
private form2 ;
private void Form1_load(...)
{
form2 f = new form2();
f.QueryFinished += new OnQueryFinished(this.QueryFinished);
}
private void button_click(...)
{
f.ShowDialog();
}
private void QueryFinished(DataTable tbResult)
{
this.dgv.DataSource = tbResult;
}
}

差不多主要就这三种方式吧,代码随手写的,见谅。。