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
}
TA贡献1995条经验 获得超2个赞
尝试映射它。尝试将此代码放入您的UserControl:
public event EventHandler ValueChanged {
add { numericUpDown1.ValueChanged += value; }
remove { numericUpDown1.ValueChanged -= value; }
}
那么您UserControl将拥有ValueChanged通常在NumericUpDown控件中看到的事件。
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));
}
}
- 3 回答
- 0 关注
- 533 浏览
添加回答
举报