【问题标题】:Accessing the control created at runtime without using ControlCollection在不使用 ControlCollection 的情况下访问在运行时创建的控件
【发布时间】:2010-09-02 07:32:35
【问题描述】:

我有一个表单并正在创建控件,并在运行时添加它们。如何在不使用 controlcollection 的情况下访问这些控件。

如果我使用 controlcollection 循环,系统会挂起一段时间。

还有其他方法可以访问该控件吗?

提前致谢。

【问题讨论】:

    标签: .net desktop-application


    【解决方案1】:

    不确定您使用的是什么语言,但如果您知道控件的名称,则可以使用控件集合并简单地获取具有指定名称的控件。这不需要您遍历任何内容。

    据我所知,在不访问 controlcollection 的情况下获得运行时控件是不可能的。

    例如我自己使用的一些运行时逻辑如下:

    object c = this.Controls.Find("nameOfTheControl", false);
    

    【讨论】:

    • 我知道控件名称。我该如何使用它?
    • 编辑了我的帖子以添加希望有帮助的代码,在 C# 中添加它,但将其更改为 VB 应该不难:)。
    • this.Controls 是控件集合。上面的代码使用它。问题的作者不想这样做。我的回答:我不认为这是可能的 - 有一个包含所有控件的控件树,你必须得到一个。即使您没有显式使用控件集合,您使用的方法(如 Find())也可能会。
    • 作者确实说过,作者真正想要的是在不导致应用程序挂起的情况下访问控件。导致应用程序挂起的是循环,我的解决方案不会导致循环,因此比简单的“不可能”更有用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 2011-01-15
    相关资源
    最近更新 更多