【发布时间】:2014-02-08 11:07:08
【问题描述】:
在什么情况下,当最初加载 WinForms 自定义控件(继承自 TextBox)时,是否可以且适当地可靠地引用父窗体?
四处搜索后,我发现一个涵盖该领域的讨论是.NET WinForms Custom Control: how to get a reference to the containing form。具体来说,adrift 的帖子涉及到在将自定义控件添加到父窗体(并且 OnParentChanged 事件触发)之前,FindForm 将返回 null 的问题。
基于此,建议使用 OnParentChanged 事件。不幸的是,我发现如果自定义控件包含在另一个控件(例如面板)中,则此容器不一定会添加到表单的控件集合中,即使在自定义控件的 OnParentChanged 事件中,FindForm 也会返回 null。
因此,我想知道是否有更好的事件可以使用,它可以可靠地允许 FindForm 用于返回自定义控件的父窗体(即使它被放置在另一个容器控件中)。
【问题讨论】:
-
与论坛网站不同,我们不使用“谢谢”、“感谢任何帮助”或Stack Overflow 上的签名。请参阅“Should 'Hi', 'thanks,' taglines, and salutations be removed from posts?.
-
而且,顺便说一句,您的意思是“非常受欢迎”,而不是“非常受欢迎”。
-
克里斯,感激地也意味着标记答案,或者至少评论建议的答案;-)
-
Luc,虽然我仍在解决这个问题(主要是在您对另一个问题的帮助下),但我会在第二天左右发表评论/标记为答案 - 非常感谢; -)
-
约翰,感谢您对礼仪的见解 - 温柔一点,我是堆栈溢出的新手贡献者
标签: .net winforms custom-controls