2012-05-22 73 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 
相關問題