[英]user control and raising events from controls placed in user control
因此,我想知道以下代码有什么问题,尤其是从理论上讲。
我有一个用户控件,在其中添加了一个文本框。 当我在文本框中单击时,我希望在用户控件中引发“鼠标单击”事件。 在我看来,解决方案应该是:在文本框中为鼠标单击事件创建事件处理程序。 在此事件处理程序中,引发用户控件的鼠标单击事件。
所以这就是我所拥有的:
private void txtLog_MouseClick(object sender, MouseEventArgs e)
{
this.OnMouseClick(e);
}
我已经尝试过了,但是行不通,为什么呢?
PS我真的很想知道为什么这是错误的! 正确的解决方案很好,但我实际上是在尝试了解我在哪里出错了。 谢谢 :-)
好吧,您可以在设计模式下单击文本框,然后在“事件”选项卡的属性窗口中添加click事件。 或者,如果您想在运行时执行此操作,则可以这样做:
textbox.Click += Txt_Click;
private static void Txt_Click(object sender, EventArgs e)
{
// do your thing
}
甚至更短:
textbox.Click += (s,e) =>
{
//do your thing
};
您应该执行以下三个步骤
第1步:
private void textBox1_MouseClick(object sender, MouseEventArgs e)
{
}
第2步:
this.textBox1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.textBox1_MouseClick);
第三步:
public myUserControl()
{
InitializeComponent();
this.MouseClick += new MouseEventHandler(textBox1_MouseClick);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.