實現兩個窗體直接傳參數的方法很多,感覺挺難,其實真正的做了,也沒有那麼難。
傳參數
方法一:把控件聲明成為public的。
方法二:借助一個中間類來實現。
方法三:用public static聲明要傳送的變量
方法四:用構造函數傳。
一般這四個方法就夠了。
例子
如我做過的一個進銷存軟件,進貨的時候要從貨物信息中取得貨物編號(用戶不能輸入編號)。而貨物信息是另一個窗體,怎麼實現點擊獲得 貨物編號按鈕(在進貨窗體中) 彈出貨 物信息窗體,然後從 貨物信息窗體 選擇要進的貨物後返回給 進貨窗體 呢?
假設進貨窗體是 purchase.cs
貨物窗體是 material.cs
在purchase.cs窗體的 獲得 貨物編號按鈕 單擊事件中寫入如下代碼:
material m = new material();
m.ShowDialog();
if (m.DialogResult == DialogResult.OK)
{
txtinmid.Text = m.getmid;
//getmid是material的一個構造函數,txtinmid是purchase.cs中顯示 貨物編號 的文本框
m.Close();
}
GetbaseMaterialinfo();//自己的一個方法
然後在material.cs窗體中寫入如下代碼。
public material()//默認的構造函數
{
InitializeComponent();
}
public string getmid//就是這個了。
{
get
{
return dgvmaterial.Rows[dgvmaterial.CurrentRow.Index].Cells[1].Value.ToString();
}
}
這是激活方法(我的是雙擊datagridview行)
private void datagridview_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
this.DialogResult = DialogResult.OK;
}
這樣purchase.cs窗體的顯示貨物編號按鈕就可以獲得你選定的商品了。簡單吧。