【问题标题】:How to create click event for dynamically created custom control?如何为动态创建的自定义控件创建点击事件?
【发布时间】:2014-10-31 03:28:35
【问题描述】:

假设我正在创建数千个自定义控件,每个控件都有分配给它自己的数据(如名称、id 等),现在我想添加

  • 每个自定义控件的点击事件
  • 从软件访问这些动态创建的控件中的任何一个

所以我想在用户单击控件 #452 时显示 MsgBox,它将返回分配给自定义控件类中对象的值(在用户表单上创建新控件期间传递)

第二件事是我想随时访问这些对象中的任何一个并读取分配给受控对象的值....

怎么做?每个控件都有分配的名称,如“Example1”、“Example2”、“Example3”,但我不知道如何从代码中访问它,因为其中任何一个在编写过程中都存在......

我还试图找到如何创建和触发事件,但似乎所有解决方案都适用于静态创建的控件,我需要为动态创建的自定义控件触发事件......

提前感谢任何提示/帮助如何解决它。

我正在使用 VB.NET

【问题讨论】:

    标签: vb.net events controls


    【解决方案1】:

    好的,我想通了!

    其实很简单。

    如果有人在寻找答案:

    首先要访问动态创建的控件,我们将对其命名:

    Dim Control as new CustomControl
    Control.Name = "Name" & Counter
    

    接下来,在我们创建新控件后,我们将使用以下方法访问它:

    Dim _Control as new CustomControl
    _Control = Ctype(Me.Panel1.Controls("Name1"), CustomControl)
    MsgBox(_Control.Name.ToString)
    

    中提琴

    我仍然不确定自定义控件上所有控件的自定义事件(所以无论用户点击哪里,都应该有覆盖事件返回一些东西,现在我只能从内部代码中单击面板容器(而不是标签/图片框)用户类,或自定义控件上每个控件的事件(但问题是我想将数据从自定义控件传递给用户类)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-06
      • 2016-08-11
      • 1970-01-01
      • 2019-11-09
      • 2013-02-18
      • 1970-01-01
      相关资源
      最近更新 更多