2012-05-22 68 views
0

我使用下面的代码创建一个新窗体。从C#中的另一个窗体填充创建的窗体组件#

private void CNPictureBox2_DoubleClick(object sender, EventArgs e) 
{ 
    RefImgForm RefImgForm = new RefImgForm(); 
    RefImgForm.MainFrm = this; 
    RefImgForm.Show(); 
} 

我想从我创建第二个表格的形式发送数据。问题是我创建它时无法将数据发送到新窗体。当我从用户获取一些数据,然后通过按钮单击事件发送这些数据时,我想发送数据。我怎样才能做到这一点?

回答

1

在第二种形式

public void ReceiveData(....) 
{ 
... 
} 

定义了一种新方法,并从按钮第一种形式调用此单击

private RefImgForm frm2 = null; 
private void CNPictureBox2_DoubleClick(object sender, EventArgs e) 
{ 
    frm2 = new RefImgForm(); 
    frm2.MainFrm = this; 
    frm2.Show(); 
} 
private void Button_Click(...) 
{ 
    if (frm2 != null) 
     frm2.ReceiveData(...); 
} 
0

在这样父窗体创建一个委托:

 delegate void SendData(object data); 
     SendData sendDataobj; 

在子窗体中创建一个方法,如ProcessData并使用以下代码:

private void CNPictureBox2_DoubleClick(object sender, EventArgs e) 
{ 
    RefImgForm RefImgForm = new RefImgForm(); 
    RefImgForm.MainFrm = this; 
    sendDataobj = new SendData(RefImgForm.ProcessData) 
    RefImgForm.Show(); 
} 

调用,您可以使用委托:

sendDataobj(data); 
    sendDataobj.Invoke(data); 

都是同步调用。

,如果你想异步调用它,你可以使用:

sendDataobj.BeginInvoke 
相关问题