C#傳值方式實(shí)現(xiàn)不同程序窗體間通信實(shí)例
當(dāng)Form2的AcceptChange按鈕按下,需要修改Form1中ListBox中相應(yīng)列的值,因此可以考慮同時(shí)將Form1中的ListBox控件當(dāng)參數(shù)也傳入Form2,所有修改工作都在Form2中完成,根據(jù)這個(gè)思路,F(xiàn)orm2代碼如下:
publicpartial class Form2 : Form
{
private string text;
private ListBox lb;
private int index;
//構(gòu)造函數(shù)接收三個(gè)參數(shù):選中行文本,ListBox控件,選中行索引
public Form2(string text,ListBox lb,int index)
{
this.text = text;
this.lb = lb;
this.index = index;
InitializeComponent();
this.textBox1.Text = text;
}
private void btnChange_Click(object sender, EventArgs e)
{
string text = this.textBox1.Text;
this.lb.Items.RemoveAt(index);
this.lb.Items.Insert(index, text);
this.Close();
}
}
Form1中new窗體2時(shí)這么寫:
public partial class Form1 :Form
{
int index = 0;
string text = null;
public Form1()
{
InitializeComponent();
}
private void listBox1_SelectedIndexChanged(object sender, EventArgse)
{
if (this.listBox1.SelectedItem != null)
{
text = this.listBox1.SelectedItem.ToString();
index = this.listBox1.SelectedIndex;
//構(gòu)造Form2同時(shí)傳遞參數(shù)
Form2 form2 = new Form2(text, listBox1, index);
form2.ShowDialog();
}
}
OK,這樣做的好處是直觀,需要什么就傳什么,缺點(diǎn)也是顯而易見的,如果窗體1中需要修改的是一百個(gè)控件,難道構(gòu)造的時(shí)候還傳100個(gè)參數(shù)進(jìn)去?況且如果其他窗體仍然需要彈Form2,那Form2就廢了,只能供窗體1使用,除非寫重載的構(gòu)造函數(shù),不利于代碼的復(fù)用
相關(guān)文章
C#數(shù)據(jù)結(jié)構(gòu)之堆棧(Stack)實(shí)例詳解
這篇文章主要介紹了C#數(shù)據(jù)結(jié)構(gòu)之堆棧(Stack),結(jié)合實(shí)例形式較為詳細(xì)的分析了堆棧的原理與C#實(shí)現(xiàn)堆棧功能的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11C# 屏蔽關(guān)鍵字的實(shí)現(xiàn)方法
前段時(shí)間在公司做了一個(gè)論壇屏蔽關(guān)鍵字的功能,我做的比較簡單、實(shí)用~ 現(xiàn)在拿出來給博友們分享下..也希望大家能頂頂我~2013-05-05C#實(shí)現(xiàn) Server-sent Events的步驟
這篇文章主要介紹了C#實(shí)現(xiàn) Server-sent Events的步驟,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下2021-01-01C# websocket及時(shí)通信協(xié)議的實(shí)現(xiàn)方法示例
說到websocket大家一定不會(huì)陌生,WebSocket是HTML5一種新的協(xié)議。下面這篇文章主要給大家介紹了關(guān)于C# websocket及時(shí)通信協(xié)議的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-11-11WinForm自定義函數(shù)FindControl實(shí)現(xiàn)按名稱查找控件
這篇文章主要介紹了WinForm自定義函數(shù)FindControl實(shí)現(xiàn)按名稱查找控件,需要的朋友可以參考下2014-08-08