跪求大神一個問題,我想實作一個專案中的兩個Form視窗之間的互相傳值,類似于兩個視窗聊天發資訊,現在我用委托從子表單想父表單發訊息沒有問題,但是是通過按父表單按鈕觸發實體化子表單并向子表單建構式傳引數實作的;所以現在的問題是父表單向子表單發訊息,每次都會生成一個子表單,我想只能生成一個子表單怎么實作?
Form1表單:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btn1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2(txt1.Text,DoSth);
f2.Show();
}
//把字串變數的值賦值給文本框
public void DoSth(string msg)
{
txt1.Text = msg;
}
}
Form2表單:
public delegate void MyDel(string str);
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();//初始化表單的
}
private MyDel _mdl;
public Form2(string str,MyDel mdl):this()
{
textBox1.Text = str;
this._mdl = mdl;
}
private void button1_Click(object sender, EventArgs e)
{
//呼叫委托的時候 一定要先判斷
if (this._mdl!=null)
{
this._mdl(textBox1.Text);
this.Close();
}
}
}
uj5u.com熱心網友回復:
子視窗做成單例啊,不要一點視窗就new一個,而是創建好了放在一邊,不用了就hide,而不是close。uj5u.com熱心網友回復:
https://bbs.csdn.net/topics/360140208uj5u.com熱心網友回復:
這個其實非常簡單,不要這么麻煩。F1主表單,F2次級表單,不用CHILD都可以。但不使用的時候HIDE或者CLOSE
F2寫一個PUBLIC方法。接收資訊的,無論單值 還是多值。SHOW之前執行一下即可。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/133147.html
標籤:C#
上一篇:C#使用sharpssh操作linux無法建立連接的問題
下一篇:C#顯示GPS經緯度
