所以我想知道以下代码有什么问题,特别是从理论上讲。
我有一个用户控件,其中添加了一个文本框。 当我在文本框中单击时,我希望在用户控件中引发“鼠标单击”事件。 在我看来,解决方案应该是: 在文本框中为鼠标单击事件创建事件处理程序。 在此事件处理程序中,为用户控件引发鼠标单击事件。
这就是我所拥有的:
private void txtLog_MouseClick(object sender, MouseEventArgs e)
{
this.OnMouseClick(e);
}
我尝试过,但是不起作用,为什么会这样?
P.S。我真的很想知道为什么这是错误的!正确的解决方案很好,但我实际上是在尝试了解我在哪里出错了。谢谢:-)
答案 0 :(得分:0)
好吧,您只需在设计模式下单击文本框,然后在事件选项卡的属性窗口中添加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 :(得分:0)
您应该执行这三个步骤
第1步:
private void textBox1_MouseClick(object sender, MouseEventArgs e)
{
}
第二步:
this.textBox1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.textBox1_MouseClick);
第3步:
public myUserControl()
{
InitializeComponent();
this.MouseClick += new MouseEventHandler(textBox1_MouseClick);
}