在C 中使用者控制項與窗體間的訊息傳遞

2021-05-02 13:26:25 字數 3316 閱讀 8132

如何在c#中實現使用者定義控制項內的事件掛勾到呼叫的窗體事件中

我們都知道在asp.net開發中,如果使用使用者定義控制項可以有效的進行程式的模組化。其實在.net  的winform中也是可以使用的。

細節如下:

2、新增新的使用者控制項userlogin。(如圖user)

3、定義使用者屬性

//定義屬性

public string username

set

}

public string password

set }

4、定義委託

//定義委託

public delegate void btnokclickeventhander(object sender,eventargs e);

public delegate void btncancelclickeventhander(object sender,eventargs e);

5、定義事件

//定義事件

public event btnokclickeventhander btnokclick;

public event btncancelclickeventhander btncancelclick

6、事件實現

private void textboxuid_textchanged(object sender, system.eventargs e)

private void textboxpwd_textchanged(object sender, system.eventargs e)

private void buttonok_click(object sender, system.eventargs e)

private void buttoncancel_click(object sender, system.eventargs e)

7、在form1的winform中實現對使用者控制項事件的呼叫,訊息的接收。

protected void okclick(object send,system.eventargs e)

protected void cancelclick(object send,system.eventargs e)

8.按f5執行(如圖result)

using system;

using system.drawing;

using system.collections;

using system.componentmodel;

using system.windows.forms;

using system.data;

///

/// 清理所有正在使用的資源。

///

protected override void dispose( bool disposing )

}

base.dispose( disposing );

}#region windows 窗體設計器生成的**

///

/// 設計器支援所需的方法 - 不要使用**編輯器修改

/// 此方法的內容。

///

private void initializecomponent()

#endregion

///

/// 應用程式的主入口點。

///

[stathread]

static void main()

protected void okclick(object send,system.eventargs e)

protected void cancelclick(object send,system.eventargs e)

}

}

附2(userlogin源**)

using system;

using system.collections;

using system.componentmodel;

using system.drawing;

using system.data;

using system.windows.forms;

///

/// 清理所有正在使用的資源。

///

protected override void dispose( bool disposing )

}

base.dispose( disposing );

}#region 元件設計器生成的**

///

/// 設計器支援所需的方法 - 不要使用**編輯器

/// 修改此方法的內容。

///

private void initializecomponent()

#endregion

//定義屬性

public string username

set}

public string password

set}

//定義事件

public event btnokclickeventhander btnokclick;

public event btncancelclickeventhander btncancelclick;

private void textboxuid_textchanged(object sender, system.eventargs e)

private void textboxpwd_textchanged(object sender, system.eventargs e)

private void buttonok_click(object sender, system.eventargs e)

private void buttoncancel_click(object sender, system.eventargs e)

}

}

除錯環境windows 2003+vs.net 2003.

author:

[email protected]

子窗體與父窗體間的傳值 用委託實現

這2天因為需要做winform程式,需要把asp的乙個庫存異動功能模組轉成winform程式,所以就遇見了窗體之間傳值的這種情況 以前在肇慶上班的時候也做過這樣的情形,當時還是初始做winfom程式,主要是機器通訊方面的,和單件模式聯絡比較密切。時隔差不多4個月,真的快忘記了,居然有開始做這個,所以...

C 在服務中用timer控制項的小問題

今天做乙個很簡單的 windows 服務程式,就是不停的收發資訊,需要用到 timer 控制項,於是就拖上來乙個 timer 控制項 長得和齒輪一樣的那種 在它的 tick 事件裡寫上 除錯,tick 事件裡的 沒有執行,不知怎麼回事。在網上找資料,發現這個齒輪的 timer 控制項是在 form ...

C 開發WinForm窗體間傳值的4種常用方法

傳值是單向的 不可以互相傳值 在例項化時直接傳值給子窗體,實現簡單,最為常用 form2.cs int intvalue string strvalue public form2 public form2 int value1,string value2 form1.cs int a 10 stri...