簡體   English   中英

從C#中的另一個表單填充創建的表單組件

[英]Fill created form components from another form in C#

我使用下面的代碼創建一個新表單。

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

我想從創建第二個表單的表單發送數據。 問題是創建新表單時我無法將數據發送到新表單。 我想從用戶那里獲取一些數據然后通過按鈕單擊事件發送此數據時發送數據。 我怎樣才能做到這一點?

定義第二種形式的新方法

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(...);
}

像這樣在父表單中創建一個委托:

      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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM