强制创建控制句柄
我目前正在创建一个无声打印模块。我当前使用的控件是确保控件句柄已创建(IsHandleCreated
)。我想尽一切办法来欺骗这个,但一点运气都没有。
您是否有关于如何为控件创建句柄而不在屏幕上显示任何句柄的想法?
I'm currently creating a silent print module. The current control I'm using is, it's making sure that the control handle is already created (IsHandleCreated
). I did everything to cheat this with no luck at all.
Do you have ideas in mind on how can I create a handle for the control without displaying any in the screen?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您必须访问 Handle 属性(将结果放入虚拟变量或其他变量中)。查看反射镜;它强制创建句柄。
You have to access the Handle property (put the result in a dummy variable or something). Look in Reflector; it forces handle creation.
尝试重载
CreateParams
属性 getter。在其中清除WS_VISIBLE
标志。Try to overload
CreateParams
property getter. In it clear theWS_VISIBLE
flag.我对其他一些控件也有同样的问题,并使用了
Control.CreateControl()
方法:但我不知道它如何与打印模块一起使用。
I had the same problem with some other controls and used the
Control.CreateControl()
method:But i don't know how it works with a print module.
我通过设置 CreationParams 的 WS_VISIBLE 解决了这个烦人的句柄创建问题。您可以重写 Control 的 CreationParams 属性,也可以使用适当的 CreateParams 实例调用 CreateHandle 方法。请参阅链接
I solved this annoying handle creation problem by settings the WS_VISIBLE of CreationParams. You may either override the CreationParams property of Control or call the CreateHandle method with appropriate CreateParams instance. See the link
调用私有方法 CreateHandle 将完成这项工作。
Calling private method CreateHandle will do the work.