【发布时间】:2010-09-23 22:50:32
【问题描述】:
有没有办法在创建 WinForms 自定义控件/用户控件时在运行时获取对放置控件的窗体的引用,以便访问该窗体的各种属性?我宁愿不将表单的引用传递给控件的构造函数,因为出于各种原因,我需要保留一个不带参数的默认构造函数。
一个例子:我有几个封装了 Win32 API 调用的自定义控件,其中一些调用需要将窗口句柄作为参数传递。我希望能够检索包含表单的句柄,以便将其传递给 API 函数。
另一个例子:我有一个自定义控件,它提供“toast”样式的用户通知。我希望可以选择在相对于主申请表位置的位置打开通知表,例如以主窗口为中心、向右偏等。显然,如果不知道主应用程序窗口的坐标。
我可以在某些情况下使用 FindWindowEx() 类型的 API 调用,但这感觉就像是一个杂物,而且并非在所有情况下都有效。
有人知道这是否可行吗?
【问题讨论】:
标签: .net windows winforms custom-controls