今天在做一個聯系人管理的C#設計時,遇到了這個問題,我需要將父窗體中的textBox中的值傳到子窗體並進行數據庫查詢操作,我用了new 父窗體().textBox.text;來進行值傳遞,然而並無卵用,經過多次試驗,找到了一個比較簡單的解決方法:
一、子窗體調用父窗體的靜態變量
父窗體:Logout
子窗體:Affirm
父窗體文本框:tB_Logout_Username
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21public
partial
class
Logout : Form
{
//定義一個靜態變量存放父窗體中的文本框的值
public
static
string
tB_LogoutName;
//實例化子窗體的事件
private
void
btt_Logout_Click(
object
sender, EventArgs e)
{
//獲取父窗體中的文本框的值
tB_LogoutName = tB_Logout_Username.Text;
Affirm aff =
new
Affirm();
aff.Show();
}
}
接下來要在子窗體中調用就可以直接:父窗體.變量
即:Logout.tB_LogoutName
這個方法顯得比較取巧,按理說應該先找到獲取父窗體的方法,然後再對其進行操作。
二、將父窗體作為屬性傳遞給子窗體
在你的子窗體中定義public 的父窗體字段,如:
public
class
Affirm:Form
{
public
Logout MyLogout;
}
然後在父窗體設置其值即可,如:
public
partial
class
Logout : Form
{
//定義一個靜態變量存放父窗體中的文本框的值
public
static
string
tB_LogoutName;
//實例化子窗體的事件
private
void
btt_Logout_Click(
object
sender, EventArgs e)
{
//獲取父窗體中的文本框的值
//tB_LogoutName = tB_Logout_Username.Text;
Affirm aff =
new
Affirm();
aff.MyLogout=
this
;
aff.Show();
}
}
這樣,父窗體中公開的成員你都可以在子窗體中訪問,使用。