在窗體間傳遞資料的方法比較多:
publicclass
frmmain:form
public
class
frmcontrol:form
//子窗體,用來控制主窗體的某些顯示!
private
void
button1_click(
object
sender,eventargse) }
2,我個人感覺上面的方法不是很好,雖然實現起來很簡單,只是想改變窗體的標題文字,就把整個主窗體的引用都傳遞給子窗體,這樣的方式不是很幽雅,我們用介面來改進上面的方法,這樣可以限制暴露給子窗體的功能,降低窗體之間的耦合度:
publicinte***ce
ichangetitle:
public
class
frmmain:form,ichangetitle }
public
class
frmcontrol:form
//子窗體,用來控制主窗體的某些顯示!
private
void
button1_click(
object
sender,eventargse) }
3,為了進一步降低窗體之間的耦合度,我們可以用委託來實現這個需求:
publicpartial
class
childform:form
private
void
btn_ok_click(
object
sender,eventargse) }
主窗體給委託變數賦值就可以了:
publicpartial
class
mainform:form
protected
void
formtitlechanged(
string
title)
private
void
button1_click(
object
sender,eventargse) }
4,也可以在子窗體中定義乙個自定義的事件,然後自定義乙個事件引數,用來傳遞你想傳遞的一些資訊:
publicpartial
class
childform:form
set }
} public
delegate
void
titlechangedeventhandler(
object
sender,titlechangedeventargse);
public
event
titlechangedeventhandlertitlechanged;
public
childform()
private
void
btn_ok_click(
object
sender,eventargse)
protected
virtual
void
ontitlechanged(titlechangedeventargse)
//觸發事件的方法 }
主窗體訂閱這個事件就可以了:
publicpartial
class
mainform:form
protected
void
formtitlechanged(
object
sender,childform.titlechangedeventargse)
private
void
button1_click(
object
sender,eventargse) }
WinForm窗體間傳值
form1 主窗體 namespace firstdlg public string textstored set private void button1 click object sender,eventargs e private void form1 load object sender,e...
WinForm 窗體間傳遞資料
子窗體.cs方法一 在子窗體中自定義乙個建構函式,引數型別是主窗體,當要顯示子窗體的時候,就用這個建構函式來例項化子窗體,然後把this指標傳進去。如下 主窗體.cs public class frmmain form 子窗體.cspublic class frmcontrol form 子窗體,用...
winform窗體間傳值
推薦使用第6與第7方法 1.通過建構函式 特點 傳值是單向的 不可以互相傳值 實現簡單 實現 如下 在窗體form2中 int value1 string value2 public form2 int value1 string value2 在窗體form1中這樣呼叫 new form2 111...