C 中窗體的資料傳遞

2021-09-02 01:46:29 字數 3101 閱讀 9580

用vs2008中進行窗體之間資料的傳遞

首先用form1體作為主窗體,當主窗體之間修改資料時,子窗體也可以和主窗體資料相同,使用建構函式進行資料傳遞

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.windows.forms;

public partial class form1 : form

public form1()

initializecomponent();

private void form1_load(object sender, eventargs e)

private void button1_click(object sender, eventargs e)

form2 array = new form2(this.textbox1, this.checkbox1);

array.showdialog();

兩個引用型別的資料:

textbox

型別,和

checkbox

;另外在

form2

中增加了兩個類資料成員,在

.net

中有兩種型別,值型別和引用型別。值型別是從

valuetype

繼承而來,而

valuetype

又是從object

繼承;對於引用型別它直接繼承

object

型別。這下讓我們看看怎樣通過

form2

來修改form1

裡的資料。

public partial class form2 : form

private textbox txt;

private checkbox cht;

public form2(textbox textbox, checkbox checkbox)

initializecomponent();

this.textbox1.text = textbox.text;

this.checkbox1.checked= checkbox.checked;

txt = textbox;

cht = checkbox;

private void button1_click(object sender, eventargs e)

txt.text = textbox1.text;

cht.checked = checkbox1.checked;

this.close();

定義txt 和 cht 變數,儲存變數textbox,checkbox。然後通過txt,cht把子窗體的資料傳輸到主窗體,

因為它們所使用的同乙個引用。

舉乙個例子

主窗體public partial class form1 : form

public arraylist listdata1;

public form1()

initializecomponent();

this.listdata1 = new arraylist();

this.listdata1.add("dotnet");

this.listdata1.add("php");

this.listdata1.add("xml");

this.listdata1.add("asp");

this.listdata1.add(">net");

this.listdata1.add("dot");

this.listbox1.datasource = this.listdata1;

private void form1_load(object sender, eventargs e)

private void button1_click(object sender, eventargs e)

form2 fchild = new form2(this.listdata1);

fchild.showdialog();

this.listbox1.datasource = null;

this.listbox1.datasource = this.listdata1;

子窗體public arraylist listdata2;

public form2(arraylist listdata)

initializecomponent();

this.listdata2 = listdata;

foreach (object o in this.listdata2)

this.listbox1.items.add(o);

private void form2_load(object sender, eventargs e)

private void button1_click(object sender, eventargs e)

if (textbox1.text.trim().length > 0)

listdata2.add(textbox1.text.trim());

listbox1.items.add(textbox1.text.trim());

else

messagebox.show("請輸入要新增的內容");

private void button2_click(object sender, eventargs e)

int index = listbox1.selectedindex;

if (index != -1)

listbox1.items.removeat(index);

listdata2.removeat(index);

else

messagebox.show("請選擇內容");

private void button3_click(object sender, eventargs e)

this.close();

C 中窗體之間的資料傳遞

傳參的方法,主要利用arraylist 型別引數為引用傳遞的特性.主窗體 public partial class frmmain form private void btnadd click object sender,eventargs e 子窗體 public partial class fr...

MDI窗體間的資料傳遞

mdi窗體間的資料傳遞與普通窗體間的傳遞略有不同。普通的窗體可以用以下的方式實現,t2 t3分別是f2,f3下的text控制項 b2是f2下的按鈕 f2下 public class f2 public b as string 定義乙個全域性變數 private sub b2 click byval ...

C 中窗體間資料傳遞的兩種方法

c 中有時需要在其他窗體上訪問主窗體中的成員資料或系統中一些基本配置資料要在不同的窗體中使用,就需要在不同窗體間傳遞相同資料。以下總結兩種窗體間資料傳遞的方法。1,訪問主窗體中的成員資料的方法 1 建立乙個應用程式 已有主窗體form1 2 再新增乙個窗體 form2 3 在form1中新增乙個按鈕...