笔记—————C#窗体间数据的传递(事件)

C#窗体间数据的传递(事件)

窗体间数据的传递,顾名思义至少两个窗体才能进行数据的传递。以下内容为两个窗体间数据的穿的传递。

(一) Form1(没有实例化的父窗体) 窗体向下一个窗体(Form2  用new运算子申请出来的实例对象,子窗体)进行数据的传递。这一个比较简单:在Form2 中声明一个公有的数据成员,在Form2 展示之前对实例Form2 的数据成员进行赋值即可。

(二)Form2 窗向Form1 窗体进行数据的传递:需要用到事件(委托)。

以例题为例:

  
该程序的执行过程是这样的:在第一个窗体输入第一个加数,点击按钮后在第二个窗体输入第二个加数再点击按钮,进行运算并把结果返回到第一个窗体。
首先:运用方法一将第一个加数传到第二个窗体,通过form2 的共有的成员函数。
/**
 * Form1 的点击事件
 */
private void button1_Click(object sender, EventArgs e)
{
	Form2 form2 = new Form2();//创建一个Form2 的实例对象
	form2.addNumber1 = Convert.ToDouble(textBox1.Text);//Form1——>Form2实现参数的传递
	//form2.Send += new Form2.SendNumber(Add);//关键(触发事件)
	form2.Show();
}

 
其次:关键的一步就是将另一个加数和结果传到第一个窗体,两个参数传递的类型一样,需要运用事件,将两个变量作为事件函数的两个参数。
在Form2 中:
//委托的定义(一)
public delegate void SendNumber(double  a,double b);

//实例化对象(二)
public event SendNumber Send;
// 加数变量
public double addNumber1;

/**
 * Form2 的点击事件
 */ 
private void button1_Click(object sender, EventArgs e)
{
    textBox2.Text = (Convert.ToDouble(textBox1.Text) + addNumber1).ToString();//将计算结果赋值给Form2 的结果TextBox
    Send(Convert.ToDouble(textBox1.Text), Convert.ToDouble(textBox1.Text)+addNumber1);//触发事件(四)
    MessageBox.Show("延时5秒","提示");
    YanShi();
    //this.Show();
    this.Close();
}

在Form1中:
 

/**
 * Form点击事件
 */
private void button1_Click(object sender, EventArgs e)
{
    Form2 form2 = new Form2();
    
    //Form1——>Form2
    form2.addNumber1 = Convert.ToDouble(textBox1.Text);
    
    //关键(关联事件)(三)Form2.SendNumber
    form2.Send += new Form2.SendNumber(Add);
    form2.Show();
}


/**
 * 展示数据
 */ 
public void Add ( double addNumber ,double aluter) //Form2 ——>Form1
{
    textBox2.Text = addNumber.ToString();
    textBox3.Text = aluter.ToString();
}
事件基本分为四步:
1、声明委托(Form2 )
2、实例化委托对象(Form2 )
3、事件关联(Form1 )关联Form1 的共有的成员函数,将两个参数传递到Form1 中
4、触发事件(Form2 )

 
  • 7
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
好的,关于 jQuery 的事件,我可以和你分享一些学习笔记。 1. 绑定事件 在 jQuery 中,我们可以通过以下方式来绑定事件: ``` $(selector).event(function(){ // 事件处理程序 }) ``` 其中,`selector` 表示要绑定事件的元素,`event` 表示要绑定的事件类型,比如 `click`、`mouseover` 等等。事件处理程序则是在事件触发时要执行的代码块。 2. 多个事件绑定 我们可以通过 `on()` 方法来同时绑定多个事件: ``` $(selector).on({ event1: function(){ // 事件处理程序1 }, event2: function(){ // 事件处理程序2 } }) ``` 这样,当 `event1` 或 `event2` 中任意一个事件触发时,对应的处理程序都会被执行。 3. 解除事件 如果需要解除某个元素的事件处理程序,可以使用 `off()` 方法: ``` $(selector).off(event); ``` 其中,`event` 表示要解除的事件类型。如果不指定事件类型,则会解除该元素上所有的事件处理程序。 4. 事件委托 在 jQuery 中,我们可以使用事件委托来提高性能。事件委托是指将事件绑定到父元素上,而不是绑定到子元素上,然后通过事件冒泡来判断是哪个子元素触发了该事件。这样,当子元素数量较多时,只需要绑定一次事件,就可以监听到所有子元素的事件。 ``` $(selector).on(event, childSelector, function(){ // 事件处理程序 }) ``` 其中,`selector` 表示父元素,`event` 表示要绑定的事件类型,`childSelector` 表示要委托的子元素的选择器,事件处理程序则是在子元素触发事件时要执行的代码块。 以上是 jQuery 中事件的一些基本操作,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值