【问题标题】:Is there a Form method I can override after all controls are created but visible at design time in .NET?在创建所有控件但在 .NET 中的设计时可见后,是否有可以覆盖的 Form 方法?
【发布时间】:2010-11-15 19:45:46
【问题描述】:

我正在寻找一种可以在我的子类 Form 中覆盖的方法,其中 Form 内的所有控件都已创建并在设计时可见?

我已经尝试过 OnHandleCreated() 并且它在运行时按预期工作,因为我需要遍历特定表单中的所有控件并做一些事情来完成它们。但是,我希望看到这些更改反映在设计模式中,但 OnHandleCreated() 仅在运行时发生。

我需要某种可重用的代码,因为我所说的更改需要应用于我的应用程序中的所有表单,而不仅仅是一个。手动复制每个表单的代码是不可接受的。

还有其他解决方案吗?

【问题讨论】:

    标签: c# .net winforms inheritance subclass


    【解决方案1】:

    尝试处理Load 事件并检查DesignMode 是否为真,然后运行设计器所需的代码。

    【讨论】:

    • 代码将在设计和运行时同时运行,我只想看到我的更改在两种模式下都可见。
    • @Nazgulled。显然,在这种情况下您不需要检查 DesinMode 标志。这个解决方案对你有用吗?我有另一个想法,您可以将 Form 子类化以提供您的自定义处理,然后简单地从该子类派生所有表单。
    【解决方案2】:

    你不能在 InitializeComponent() 之后的构造函数中这样做吗? ?

    【讨论】:

    • 我刚刚更新了我上面的问题,以解释为什么这对于我想要实现的目标来说是不可能的。
    猜你喜欢
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    相关资源
    最近更新 更多