子窗體.cs方法一
在子窗體中自定義乙個建構函式,引數型別是主窗體,當要顯示子窗體的時候,就用這個建構函式來例項化子窗體,然後把this指標傳進去。**如下:
主窗體.cs
public class frmmain:form
子窗體.cspublic class frmcontrol:form //子窗體,用來控制主窗體的某些顯示!
private void button1_click(object sender,eventargs e)
}
方法二
其實方法一不是很好,雖然實現起來很簡單,只是想改變窗體的標題文字,就把整個主窗體的引用都傳遞給子窗體,這樣的方式不是很幽雅,我們用介面來改進上面的方法,這樣可以限制暴露給子窗體的功能,降低窗體之間的耦合度。**如下:
定義介面.cs
public inte***ce ichangetitle:
主窗體.cspublic class frmmain:form,ichangetitle
}
子窗體.cspublic class frmcontrol:form //子窗體,用來控制主窗體的某些顯示!
private void button1_click(object sender,eventargs e)
}
方法三
為了進一步降低窗體之間的耦合度,我們可以用委託來實現這個需求。**如下:
主窗體.cs
// 主窗體給委託變數賦值就可以了:
public partial class mainform : form
protected void formtitlechanged(string title)
private void button1_click(object sender, eventargs e)
}
子窗體.cspublic partial class childform : form
private void btn_ok_click(object sender, eventargs e)
}
方法四
也可以在子窗體中定義乙個自定義的事件,然後自定義乙個事件引數,用來傳遞你想傳遞的一些資訊。**如下:
主窗體.cs
// 主窗體訂閱這個事件就可以了
public partial class mainform : form
protected void formtitlechanged(object sender, childform.titlechangedeventargs e)
private void button1_click(object sender, eventargs e)
}
子窗體.cs
public partial class childform : form
set}
}// 宣告委託
public delegate void titlechangedeventhandler(object sender, titlechangedeventargs e);
// 定義事件
public event titlechangedeventhandler titlechanged;
public childform()
private void btn_ok_click(object sender, eventargs e)
// 觸發事件的方法
protected virtual void ontitlechanged(titlechangedeventargs e)
}
小菜學習Winform(五)窗體間傳遞資料
做專案的時候,winfrom因為沒有b s的快取機制,窗體間傳遞資料沒有b s頁面傳遞資料那麼方便,今天我們就說下winfrom中窗體傳值的幾種方式。共有字段傳遞實現起來很方便,就是在窗體類中加個共有字段屬性 1 public string msg2 7 呼叫 1 public form2 form...
WinForm窗體間傳值
form1 主窗體 namespace firstdlg public string textstored set private void button1 click object sender,eventargs e private void form1 load object sender,e...
winform窗體間傳值
推薦使用第6與第7方法 1.通過建構函式 特點 傳值是單向的 不可以互相傳值 實現簡單 實現 如下 在窗體form2中 int value1 string value2 public form2 int value1 string value2 在窗體form1中這樣呼叫 new form2 111...