为了账号安全,请及时绑定邮箱和手机立即绑定

如何在用户控件中创建事件并在主窗体中处理它?

如何在用户控件中创建事件并在主窗体中处理它?

C#
30秒到达战场 2019-10-09 15:26:19
我有一个自定义的用户控件,我想做一些相对简单的事情。每当该用户控件的值上下数字更改时,请使主窗体更新显示窗口。如果NUD不在用户控件中,那么这不是问题,但是我似乎无法弄清楚如何由主窗体而不是用户控件来处理事件。
查看完整描述

3 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

您需要为用户控件创建事件处理程序,该事件处理程序在触发用户控件中的事件时引发。这将使您能够在事件链上冒泡,以便可以从表单中处理事件。


当点击Button1UserControl时,我将Button1_Click触发UserControl_ButtonClick在表单上触发的事件:


用户控件:


public event EventHandler ButtonClick;


protected void Button1_Click(object sender, EventArgs e)

{

    //bubble the event up to the parent

    if (this.ButtonClick!= null)

        this.ButtonClick(this, e);               

}

形成:


UserControl1.ButtonClick += new EventHandler(UserControl_ButtonClick);


protected void UserControl_ButtonClick(object sender, EventArgs e)

{

    //handle the event 

}


查看完整回答
反对 回复 2019-10-09
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

尝试映射它。尝试将此代码放入您的UserControl:


public event EventHandler ValueChanged {

  add { numericUpDown1.ValueChanged += value; }

  remove { numericUpDown1.ValueChanged -= value; }

}

那么您UserControl将拥有ValueChanged通常在NumericUpDown控件中看到的事件。


查看完整回答
反对 回复 2019-10-09
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

您可以这样做.....下面的示例显示文本框(用户控件)的值已更改


   // Declare a delegate 

public delegate void ValueChangedEventHandler(object sender, ValueChangedEventArgs e);

public partial class SampleUserControl : TextBox 

{    

    public SampleUserControl() 

    { 

        InitializeComponent(); 

    }


    // Declare an event 

    public event ValueChangedEventHandler ValueChanged;


    protected virtual void OnValueChanged(ValueChangedEventArgs e) 

    { 

        if (ValueChanged != null) 

            ValueChanged(this,e); 

    }    

    private void SampleUserControl_TextChanged(object sender, EventArgs e) 

    { 

        TextBox tb  = (TextBox)sender; 

        int value; 

        if (!int.TryParse(tb.Text, out value)) 

            value = 0; 

        // Raise the event 

       OnValueChanged( new ValueChangedEventArgs(value)); 

    }    

}


查看完整回答
反对 回复 2019-10-09
  • 3 回答
  • 0 关注
  • 533 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信