您的位置:首页 > 编程语言 > C#

C#WinForm页面传值解决方法(仿web中Session)

2008-03-11 10:13 513 查看
昨天同事问我有没有一个安全简单的办法实现win应用程序页面之间传值,因为他先前是做web的所以老是想着传值,我想了想决定做个类似web中Session的组件,当然这不是会话的了,这个一个声明周期为整个应用程序级的。
具体代码如下:


using System;


using System.Collections;






/**//// <summary>


/// Session 的摘要说明。


/// </summary>


public class Session:DictionaryBase




...{


private static Session assion=null;




/**//// <summary>


/// 生成一个实例


/// </summary>


private Session()




...{




}




/**//// <summary>


/// 得到一个单身实例


/// </summary>


/// <returns>返回类型为Session</returns>


public static Session GetSession()




...{


if(Session.assion==null)




...{


Session.assion=new Session();


}


return Session.assion;


}




/**//// <summary>


/// 添加新成员


/// </summary>


/// <param name="newID">新字成员名字</param>


/// <param name="newmember">新成员</param>


public void Add(string newID,Object newmember)




...{


try




...{


Dictionary.Add(newID,newmember);


}


catch




...{


return;


}


}




/**//// <summary>


/// 删除成员


/// </summary>


/// <param name="memberID"></param>


public void Remove(string memberID)




...{


try




...{


Dictionary.Remove(memberID);


}


catch




...{


return;


}


}




/**//// <summary>


/// 本类的索引器


/// </summary>


/// <returns>返回Object成员</returns>


public Object this[string memberID]




...{


get




...{


try




...{


Object obj=(Object)Dictionary[memberID];


Dictionary.Remove(memberID);//销毁


return obj;




}


catch




...{


return null;//如果没有数据则返回null


}


}


set




...{


try




...{


this.Dictionary.Add(memberID,value);


}


catch




...{


return ;


}


}


}


}



先在来看如何使用的例子:



具体代码:

( 注意要添加引用上面程序编译成功的程序集:Session.dll)


using System;


using System.Drawing;


using System.Collections;


using System.ComponentModel;


using System.Windows.Forms;


using System.Data;


namespace WindowsApplication2




...{




/**//// <summary>


/// Form1 的摘要说明。


/// </summary>


public class Form1 : System.Windows.Forms.Form




...{


private System.Windows.Forms.ListBox listBox1;


private System.Windows.Forms.Button button1;


private System.Windows.Forms.Button button2;


private System.Windows.Forms.Button button3;


private System.Windows.Forms.TextBox tbxAdd;


private System.Windows.Forms.TextBox tbxDel;


private Session a;




/**//// <summary>


/// 必需的设计器变量。


/// </summary>


private System.ComponentModel.Container components = null;




public Form1()




...{


a=Session.GetSession();


//


// Windows 窗体设计器支持所必需的


//


InitializeComponent();




//


// TODO: 在 InitializeComponent 调用后添加任何构造函数代码


//


}






/**//// <summary>


/// 清理所有正在使用的资源。


/// </summary>


protected override void Dispose( bool disposing )




...{


if( disposing )




...{


if (components != null)




...{


components.Dispose();


}


}


base.Dispose( disposing );


}






Windows 窗体设计器生成的代码#region Windows 窗体设计器生成的代码




/**//// <summary>


/// 设计器支持所需的方法 - 不要使用代码编辑器修改


/// 此方法的内容。


/// </summary>


private void InitializeComponent()




...{


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


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


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


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


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


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


this.SuspendLayout();


//


// listBox1


//


this.listBox1.ItemHeight = 12;


this.listBox1.Location = new System.Drawing.Point(136, 144);


this.listBox1.Name = "listBox1";


this.listBox1.Size = new System.Drawing.Size(120, 88);


this.listBox1.TabIndex = 0;


//


// tbxAdd


//


this.tbxAdd.Location = new System.Drawing.Point(144, 32);


this.tbxAdd.Name = "tbxAdd";


this.tbxAdd.Size = new System.Drawing.Size(112, 21);


this.tbxAdd.TabIndex = 1;


this.tbxAdd.Text = "";


//


// button1


//


this.button1.Location = new System.Drawing.Point(336, 24);


this.button1.Name = "button1";


this.button1.TabIndex = 2;


this.button1.Text = "add";


this.button1.Click += new System.EventHandler(this.button1_Click);


//


// tbxDel


//


this.tbxDel.Location = new System.Drawing.Point(144, 72);


this.tbxDel.Name = "tbxDel";


this.tbxDel.Size = new System.Drawing.Size(112, 21);


this.tbxDel.TabIndex = 3;


this.tbxDel.Text = "";


//


// button2


//


this.button2.Location = new System.Drawing.Point(336, 72);


this.button2.Name = "button2";


this.button2.TabIndex = 4;


this.button2.Text = "del";


this.button2.Click += new System.EventHandler(this.button2_Click);


//


// button3


//


this.button3.Location = new System.Drawing.Point(336, 176);


this.button3.Name = "button3";


this.button3.TabIndex = 5;


this.button3.Text = "look";


this.button3.Click += new System.EventHandler(this.button3_Click);


//


// Form1


//


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


this.ClientSize = new System.Drawing.Size(528, 273);


this.Controls.Add(this.button3);


this.Controls.Add(this.button2);


this.Controls.Add(this.tbxDel);


this.Controls.Add(this.button1);


this.Controls.Add(this.tbxAdd);


this.Controls.Add(this.listBox1);


this.Name = "Form1";


this.Text = "Form1";


this.ResumeLayout(false);




}


#endregion






/**//// <summary>


/// 应用程序的主入口点。


/// </summary>


[STAThread]


static void Main()




...{


Application.Run(new Form1());


}




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




...{


// a.Add(this.tbxAdd.Text.Trim(),this.tbxAdd);


a[this.tbxAdd.Text.Trim()]=this.tbxAdd;


}




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




...{


a.Remove(this.tbxDel.Text.Trim());


}




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




...{




this.listBox1.Items.Add(((TextBox)a[this.tbxAdd.Text.Trim()]).Text.Trim());


}


}


}



现在你可以到处使用Session.dll了,让它帮你处理页面传值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐