动态处理UserControl事件

时间:2013-09-10 06:56:21

标签: c# .net user-controls mouseevent

最初我有一个图片框,可以由用户从一个地方移动到另一个地方。 我已经处理了图片框的事件,它正在完美地移动。

但现在用户想要在图片下方显示文字。所以我想动态创建一个自定义控件,并在用户控件中添加该图片框和标签控件。

我还将控件的停靠属性设置为TOP和Bottom。现在我的用户控件完全覆盖了子控件。

之后我想处理用户控件的鼠标事件。但不幸的是,这对我不起作用。

根据我的理解,现在我无法访问用户控件,而是可以访问用户控件中的子控件,因此用户控件的鼠标事件无法正常工作。

如果我错了,请纠正我,并提供任何解决方案。

1 个答案:

答案 0 :(得分:1)

好吧,只有当鼠标在特定控件上执行某些操作时,才会出现MouseDownMouseUp之类的鼠标事件。我能给你的最好的报价是在控件中捕获每个鼠标事件并在userControl上调用方法

  public UserControl1()
  {
     InitializeComponent();
     this.MouseDown += new MouseEventHandler(this.UserControl1_MouseDown);
     this.comboBox1.MouseDown += new MouseEventHandler(this.comboBox1_MouseDown);
  }

  private void UserControl1_MouseClick(object sender, MouseEventArgs e)
  {
      UCMouseDown();
  }

  private void UserControl1_MouseDown(object sender, MouseEventArgs e)
  {
      UCMouseDown();
  }

  private void comboBox1_MouseDown(object sender, MouseEventArgs e)
  {
      UCMouseDown();
  }

  private void UCMouseDown()
  {
      // Your code
  }