人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

在.net中簡單掌握Windows窗體間的數據交互(3)

在.net中簡單掌握Windows窗體間的數據交互(3)

更新時間:2022-06-30 文章作者:未知 信息來源:網絡 閱讀次數:



在.net中輕松掌握Windows窗體間的數據交互(三)

zhzuo(秋楓)

在第一篇和第二篇文章中我們使用帶參數的構造函數、屬性以及方法實現了數據的交互,接下來要講的是使用靜態類來完成窗體間的數據交互。這個也是我們經常要用到的一種數據交互方法。

三.使用靜態類

下面是定義的一個類:

using System;

using System.Collections;

namespace ZZ

{

public class AppDatas

{

private static ArrayList listData;

static AppDatas()

{

listData = new ArrayList();

listData.Add("DotNet");

listData.Add("C#");

listData.Add("Asp.net");

listData.Add("WebService");

listData.Add("XML");

}

public static ArrayList ListData

{

get{return listData;}

}

public static ArrayList GetListData()

{

return listData;

}

}

}

上面包含了一個靜態類成員,listData,一個靜態構造函數static AppDatas(),用來初始化listData的數據。還有一個靜態屬性ListData和一個靜態GetListData()方法,他們實現了同樣的功能就是返回listData。

由于前面兩篇文章已經講了很多,這里不細說了,下面是完整的代碼:

Form1.cs文件

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

namespace ZZ

{

public class Form1 : System.Windows.Forms.Form

{

private System.Windows.Forms.Button buttonEdit;

private System.Windows.Forms.ListBox listBoxFrm1;

private System.ComponentModel.Container components = null;

public Form1()

{

InitializeComponent();

this.listBoxFrm1.DataSource = AppDatas.ListData;



}

protected override void Dispose( bool disposing )

{

if( disposing )

if(components != null)

components.Dispose();

base.Dispose( disposing );

}

[STAThread]

static void Main()

{

Application.Run(new Form1());

}

private void InitializeComponent()

{

this.buttonEdit = new System.Windows.Forms.Button();

this.listBoxFrm1 = new System.Windows.Forms.ListBox();

this.SuspendLayout();

this.buttonEdit.Location = new System.Drawing.Point(128, 108);

this.buttonEdit.Name = "buttonEdit";

this.buttonEdit.TabIndex = 1;

this.buttonEdit.Text = "修改";

this.buttonEdit.Click += new System.EventHandler(this.buttonEdit_Click);

this.listBoxFrm1.ItemHeight = 12;

this.listBoxFrm1.Location = new System.Drawing.Point(12, 8);

this.listBoxFrm1.Name = "listBoxFrm1";

this.listBoxFrm1.Size = new System.Drawing.Size(108, 124);

this.listBoxFrm1.TabIndex = 2;

this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);

this.ClientSize = new System.Drawing.Size(208, 141);

this.Controls.Add(this.listBoxFrm1);

this.Controls.Add(this.buttonEdit);

this.Name = "Form1";

this.Text = "Form1";

this.ResumeLayout(false);

}

private void buttonEdit_Click(object sender, System.EventArgs e)

{

Form2 formChild = new Form2();

formChild.ShowDialog();

this.listBoxFrm1.DataSource = null;

this.listBoxFrm1.DataSource = AppDatas.ListData;

}

}

}



Form2.cs文件

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

namespace ZZ

{

public class Form2 : System.Windows.Forms.Form

{

private System.Windows.Forms.Button buttonOK;

private System.ComponentModel.Container components = null;

private System.Windows.Forms.ListBox listBoxFrm2;

private System.Windows.Forms.Button buttonAdd;

private System.Windows.Forms.Button buttonDel;

private System.Windows.Forms.TextBox textBoxAdd;

public Form2()

{

InitializeComponent();

foreach(object o in AppDatas.ListData)

this.listBoxFrm2.Items.Add(o);

}

protected override void Dispose( bool disposing )

{

if( disposing )

if(components != null)

components.Dispose();

base.Dispose( disposing );

}

private void InitializeComponent()

{

this.buttonOK = new System.Windows.Forms.Button();

this.listBoxFrm2 = new System.Windows.Forms.ListBox();

this.buttonAdd = new System.Windows.Forms.Button();

this.buttonDel = new System.Windows.Forms.Button();

this.textBoxAdd = new System.Windows.Forms.TextBox();

this.SuspendLayout();

this.buttonOK.Location = new System.Drawing.Point(188, 108);

this.buttonOK.Name = "buttonOK";

this.buttonOK.TabIndex = 0;

this.buttonOK.Text = "確定";

this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click);

this.listBoxFrm2.ItemHeight = 12;

this.listBoxFrm2.Location = new System.Drawing.Point(8, 8);

this.listBoxFrm2.Name = "listBoxFrm2";

this.listBoxFrm2.Size = new System.Drawing.Size(168, 124);

this.listBoxFrm2.TabIndex = 2;

this.buttonAdd.Location = new System.Drawing.Point(188, 44);

this.buttonAdd.Name = "buttonAdd";

this.buttonAdd.TabIndex = 3;

this.buttonAdd.Text = "增加";

this.buttonAdd.Click += new System.EventHandler(this.buttonAdd_Click);

this.buttonDel.Location = new System.Drawing.Point(188, 76);

this.buttonDel.Name = "buttonDel";

this.buttonDel.TabIndex = 4;

this.buttonDel.Text = "刪除";

this.buttonDel.Click += new System.EventHandler(this.buttonDel_Click);

this.textBoxAdd.Location = new System.Drawing.Point(188, 12);

this.textBoxAdd.Name = "textBoxAdd";

this.textBoxAdd.Size = new System.Drawing.Size(76, 21);

this.textBoxAdd.TabIndex = 5;

this.textBoxAdd.Text = "";

this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);

this.ClientSize = new System.Drawing.Size(272, 141);

this.Controls.Add(this.textBoxAdd);

this.Controls.Add(this.buttonDel);

this.Controls.Add(this.buttonAdd);

this.Controls.Add(this.listBoxFrm2);

this.Controls.Add(this.buttonOK);

this.Name = "Form2";

this.Text = "Form2";

this.ResumeLayout(false);

}

private void buttonOK_Click(object sender, System.EventArgs e)
{
this.Close();
}

private void buttonAdd_Click(object sender, System.EventArgs e)

{

if(this.textBoxAdd.Text.Trim().Length>0)

{

AppDatas.ListData.Add(this.textBoxAdd.Text.Trim());

this.listBoxFrm2.Items.Add(this.textBoxAdd.Text.Trim());

}

else

MessageBox.Show("請輸入添加的內容!");



}

private void buttonDel_Click(object sender, System.EventArgs e)

{

int index = this.listBoxFrm2.SelectedIndex;

if(index!=-1)

{

AppDatas.ListData.RemoveAt(index);

this.listBoxFrm2.Items.RemoveAt(index);

}

else

MessageBox.Show("請選擇刪除項!");

}

}

}

總結,我認為使用靜態類比較多的地方就是把應用程序的配置文件裝載到一個靜態類里面,讓所有的窗體和其他實例都可以通過靜態屬性以及靜態方法使用這些數據,比如三層結構或多層結構都可以訪問它,而不是在多個實例間傳來傳去。在這里我們討論的是Windows窗體,其實在兩個不同的實例間交互數據,都可以采用三篇文章中的方案實現,除非是這個類特有的屬性或著方法。現在都講完了,雖然不是什么高深的東西,但是希望能對一些初學者有所幫助,要是能真正的能解決一些朋友的實際問題,也算是我沒有浪費時間來寫文章,同時也歡迎各位朋友進行技術交流,共同提高,我的郵件地址zhzuocn@163

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 云梦县| 宣恩县| 新兴县| 新昌县| 阿瓦提县| 容城县| 白沙| 武功县| 凤山县| 姜堰市| 灌南县| 新和县| 临高县| 仪征市| 新晃| 昌宁县| 拜泉县| 新和县| 西乌| 开封市| 九寨沟县| 龙井市| 和平县| 开鲁县| 浮梁县| 阳春市| 东源县| 仙游县| 云梦县| 徐州市| 胶州市| 彭泽县| 土默特左旗| 皋兰县| 南郑县| 陆良县| 宁化县| 永靖县| 中山市| 玛曲县| 长垣县|