| 通过事件,在两窗体间传递数据 |
|
作者:佚名 文章来源:网贝整理|http://www.netbei.com/ 点击数: 更新时间:2005-1-11 1:02:27  |
//--------------------------------------- // form1.cs //---------------------------------------- using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data;
namespace FormConmunicate { /// <summary> /// Form1 的摘要说明。 /// </summary>
public delegate string getText();
public class Form1 : System.Windows.Forms.Form { public System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Button button1; /// <summary> /// 必需的设计器变量。 /// </summary> private System.ComponentModel.Container components = null;
public Form1() { // // Windows 窗体设计器支持所必需的 // InitializeComponent();
// // TODO: 在 InitializeComponent 调用后添加任何构造函数代码 // }
/// <summary> /// 清理所有正在使用的资源。 /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); }
#region Windows Form Designer generated code /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.textBox1 = new System.Windows.Forms.TextBox(); this.button1 = new System.Windows.Forms.Button(); this.SuspendLayout(); // // textBox1 // this.textBox1.Location = new System.Drawing.Point(64, 40); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(88, 21); this.textBox1.TabIndex = 0; this.textBox1.Text = "textBox1"; // // button1 // this.button1.Location = new System.Drawing.Point(104, 168); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(96, 24); this.button1.TabIndex = 1; this.button1.Text = "button1"; //this.button1.Click += new System.EventHandler(this.button1_Click); // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(292, 273); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.button1, this.textBox1});
FormHandel.myFormHandel[0]=(int)this.Handle;
this.Name = "Form1"; this.Text = "Form1"; this.ResumeLayout(false);
} #endregion
/// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Form1 f1=new Form1(); Form2 f2=new Form2();
f2.TextChange+=new TextChangeEventHander(f1.ontextchange); f2.Show();
Application.Run(f1); }
private void ontextchange(object sender,Form2EventArg e) { this.textBox1.Text=e.MyText ;
} }
public class FormHandel { public static int[] myFormHandel={1,2};
}
}
//----------------------------------------------- // form2.cs //----------------------------------------------- using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms;
namespace FormConmunicate { /// <summary> /// Form2 的摘要说明。 /// </summary> /// public delegate void TextChangeEventHander(object sender,Form2EventArg e);
public class Form2 : System.Windows.Forms.Form { public System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Button button1;
public event TextChangeEventHander TextChange; /// <summary> /// 必需的设计器变量。 /// </summary> private System.ComponentModel.Container components = null;
public Form2() { // // Windows 窗体设计器支持所必需的 // InitializeComponent();
this.textBox1.Text=this.Handle.ToString();
// // TODO: 在 InitializeComponent 调用后添加任何构造函数代码 // }
/// <summary> /// 清理所有正在使用的资源。 /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if(components != null) { components.Dispose(); } } base.Dispose( disposing ); }
#region Windows Form Designer generated code /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.textBox1 = new System.Windows.Forms.TextBox(); this.button1 = new System.Windows.Forms.Button(); this.SuspendLayout(); // // textBox1 // this.textBox1.Location = new System.Drawing.Point(168, 56); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(80, 21); this.textBox1.TabIndex = 0; this.textBox1.Text = "textBox1"; // // button1 // this.button1.Location = new System.Drawing.Point(168, 136); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(88, 24); this.button1.TabIndex = 1; this.button1.Text = "button1"; this.button1.Click += new System.EventHandler(this.button1_Click); // // Form2 // this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(292, 273); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.button1, this.textBox1});
FormHandel.myFormHandel[1]=(int)this.Handle; this.Name = "Form2"; this.Text = "Form2"; this.ResumeLayout(false);
} #endregion
private void button1_Click(object sender, System.EventArgs e) {
//引发事件,并传递数据 TextChange(this,new Form2EventArg(this.textBox1.Text)); } }
//事件数据 public class Form2EventArg:System.EventArgs { private readonly string mytext ;
public Form2EventArg(string str) { mytext=str; }
public string MyText { get { return mytext; }
} }
} |
| 文章录入:admin 责任编辑:admin |
|
上一篇文章: 用Visual C#开发WinForm的应用程序
下一篇文章: 如何在页面上动态的生成 WebForm控件 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |