方法1
在form1中通過postmessage傳送訊息,在form2通過defwndproc截獲訊息來相互作用,具體參見我先前的文章《c# 收發和處理自定義的windows訊息》
方法2通過第三方 公共類的公共靜態成員來實現
class class1
在form1中賦值class1.str="傳入的內容"; ,在form2中使用,strings=class1.str; 這樣的方式可以傳遞任何的物件,比如陣列等。
以下的內容來自網上,我更改其中的錯誤,並加以簡化。
方法3主窗體將自己的this引用,傳遞給子窗體的建構函式。**如下:
主窗體.cs
private void button1_click(object sender, eventargs e)
子窗體.cs
public partial class form1 :form
private void button1_click(object sender, eventargs e)
}
方法4為了限制主窗體暴露給子窗體的功能,使用介面。**如下:
定義介面.cs
publicinte***ce ichangetitle
主窗體.cs
public void changetitle(string title)
private void button2_click(object sender, eventargs e)
子窗體.cs
publicpartial class form2 : form
private void button1_click(object sender,eventargs e)
}
方法5
為了進一步降低窗體之間的耦合度,利用委託。**如下:
主窗體.cs
protected void formtitlechanged(string title)
private void button3_click(object sender, eventargs e)
子窗體.cs
publicpartial class form3 : form
private void button1_click(object sender, eventargs e)
}
方法6更好是,在子窗體中定義乙個自定義事件及其事件引數。**如下:
主窗體.cs
protected void formtitlechanged(object sender,form4.titlechangedeventargs e)
private void button4_click(object sender, eventargs e)
子窗體.cs
//主窗體訂閱這個事件就可以了
publicpartial class form4 : form
set }}
// 宣告委託
public delegate void titlechangedeventhandler(object sender,titlechangedeventargs e);
// 定義事件
public event titlechangedeventhandler titlechanged;
public form4()
private void button1_click(object sender, eventargs e)
// 觸發事件的方法
protected virtual void ontitlechanged(titlechangedeventargse)
}
元件間傳遞資訊
父元件到子元件通訊 1 prop 父子元件 父子通訊中最常見的資料傳遞方式就是通過props傳遞資料,就好像方法的傳參一樣,父元件呼叫子元件並傳入資料,子元件接受到父元件傳遞的資料進行驗證使用 props 可以是陣列或物件,用於接收來自父元件的資料。props 可以是簡單的陣列,或者使用物件作為替代...
iframe父子傳遞資訊
1.子向父通訊 parent.html window.addeventlistener message function e child.html window.parent.postmessage 2.父向子通訊 parent.html var myframe document.getelemen...
LeetCode LCP 01 傳遞資訊
問題描述 小朋友 a 在和 ta 的小夥伴們玩傳資訊遊戲,遊戲規則如下 有 n 名玩家,所有玩家編號分別為 0 n 1,其中小朋友 a 的編號為 0 每個玩家都有固定的若干個可傳資訊的其他玩家 也可能沒有 傳資訊的關係是單向的 比如 a 可以向 b 傳資訊,但 b 不能向 a 傳資訊 每輪資訊必須需...