窗體之間傳遞引數總結

2022-05-03 20:33:11 字數 2313 閱讀 8106

方案一: 窗體屬於類,可以在窗體類中定義已全域性變數,型別為公開、靜態的。

示例: public static string str ="";

注意是靜態變數,如果為:

public string str = "";

可能會出現問題,非靜態變數只能例項化物件後,才可以訪問,如果該值為動態賦值的話,當別的視窗呼叫的時候,該值 str,一直是為"";所以說最好能設定為靜態成員變數,用類來訪問它。

方案二:在窗體類中定義建構函式,意思就是說,如果form1要用到form2的乙個變數,則要在form1中定義乙個建構函式:

public form1(string str)

個人認為,此方法是在form2中建立form1的時候呼叫最合適,反過來,form1如果是個主視窗,則此方案不是最好。

方案三:通過事件來傳遞引數

事件機制一直是很難理解,比如開會,安排會議,首先要選擇開會時間,地點等因素(定義事件),然後可能通過**,郵件方式通知大家(事件發布),另外一方一旦收到,會按照先前設定的開會時間,地點來參加會議(事件響應),大概事件就是要通過三個步驟完成:

第一步:定義委託: public delegate void mydelegate(string str)//引數str根據情況來定

第二步:宣告事件變數:public event mydelegate myevent;

第三步:發布事件,這個是由宣告者來做的,定義乙個激發事件函式

比如說:

public void handle()

最後:事件接受者可以訂閱事件 

xx.myevent += new mydelegate(事件處理函式,有接受者定義)

xx.handle();

//一般操作是在 "+="後面按tab鍵,.net平台會自動給你生成乙個處理函式,比如說下面的處理函式:

void xx_mydelegate(string str)

public static string str = "";

private void button1_click(object sender, eventargs e)

void f2_myevent(string str)}}

視窗二:

using system;

using system.windows.forms;

namespace test_event

public delegate void dd(string str);//定義委託

public event dd myevent; //事件變數

//事件激發函式

public void hand()

private void button1_click(object sender, eventargs e)

private void form2_load(object sender, eventargs e)}}

本文出自 51cto.com技術部落格

首先建立乙個父窗體form1,擁有一下控制項:textbox1,button1;

再建立乙個子窗體form2,擁有控制項:textbox2,button2;

(首先描述一下整個過程:當點選form1的button1時,開啟form2視窗,然後在textbox2裡面輸入任意值,當點選button2時,將textbox2的值傳給textbox1,即實現窗體間傳值)

第一種方法:

在button1的單擊事件中寫入如下**:

form2 f2 = new form2();

f2.showdialog(this);

在button2的單擊事件中寫入如下**:

form1 f1 = (form1)this.owner;

f1.textbox1.text =this.textbox2.text;

執行即可實現傳值。

第二種方法:

在button1的單擊事件中寫入如下**:

form2 f2 = new form2(this);

f2.showdialog();

在窗體form2的窗體類中宣告變數,並改寫初始化建構函式如下:

form1 form1;

public form2(form1 f1)

在button1的點選事件中寫入如下**:

form1.textbox1.text = this.textbox2.text;

執行即可實現傳值。

注:textbox1的modifiers(控制項的可見性級別,即修飾符)應為:public ,internal,protected中之一,不能為private(私有)。

c winform窗體之間傳遞引數問題總結

最近開始c winform程式設計,對在窗體之間窗體值的問題校友心得,特總結如下。窗體之間傳遞引數總結 方案一 窗體屬於類,可以在窗體類中定義全域性變數,型別為公開 靜態的。示例 public static string str 注意是靜態變數,如果為 public string str 可能會出現...

窗體之間的引數傳遞

1 form1中新增兩個button和乙個textbox 2 在form1中新增乙個字段屬性。public string msg 3 在form2中新增乙個label 4 在form2中新增乙個屬性 public string msgset 5 過載form2的建構函式 public form2 f...

Air窗體之間傳遞值

在air的開發過程中,有時會遇到要設定值,比如說要設定父窗體的內容。這樣可以使用titlewindow來實現。將title物件窗體中的內容傳遞到父窗體中。首先我們載入乙個titlewindow 然後,我們要一開始就載入這個titlewinodw,所以預設為visible true 加後我們設定乙個t...