C 視窗傳遞資訊

2021-07-29 06:15:35 字數 2097 閱讀 6108

方法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 傳資訊 每輪資訊必須需...