对于WinForms控件,我想在容器初始化控件之后添加一个处理程序(或者更好,在父级初始化所有包含的控件之后)。
原因:自定义控件具有自动触发操作的选项。首次启用此选项时,它也应该触发。
但是,此时,其他属性(如事件处理程序)尚未正确连接,因此效果不如预期。
这可能吗?
[edit]
我知道这听起来“有点不寻常”,所以我想澄清一下:
适用于this component:粗略地,添加“自动创建新文档”选项。
我可以在初始化期间或在初始化期间分配属性时创建DocumentInfo。但是,此时我还应该触发事件以告知(通常是父表单)它需要更新UI。事件可能尚未连接,或者其他控件仍然未初始化,这就是为什么我要延迟事件直到父窗体完全初始化。
答案 0 :(得分:3)
您是否尝试过连接到表单的Load事件并在那里进行工作? (注意每次显示表单时都会激活...)
答案 1 :(得分:2)
我唯一知道的就是直接从控件中执行此操作,以覆盖OnVisibleChanged,并在第一次显示控件时处理您的操作。
但是,我会重新考虑这个问题。这将导致您的控件与标准Windows窗体控件的行为不同。试图将你的行为挂钩到一个非标准的事件似乎是对我的维护和可用性噩梦......