”在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。“问题解决方法
参考自:(https://blog.youkuaiyun.com/banket004/article/details/8722075)
一. 如问题描述,窗口句柄创建之前不可以调用invoke或begininvoke,一般原因为窗口没生成好,但程序已经跑到需要调用invoke的地方,所以在调用之前需要进行判断Invoke是否创建了,如果没有则等待,创建完毕之后再执行。思路清楚了,那么程序该怎么写?this.handle这个窗口的窗口句柄。在借鉴了别人的写法之后发现自己之前的写法着实太丑就不拿出来了。
正确的写法:
int handle = this.Handle;
//调用Invoke或BeginInvoke
如果句柄没有创建好,会等待句柄创建完成赋值给handle才继续执行。
本文解决了一个常见的Windows窗体编程问题,即在窗口句柄创建之前调用Invoke或BeginInvoke导致的错误。文章详细解释了问题的原因,并提供了一种优雅的解决方案,确保在句柄创建完成后才进行调用。

1112

被折叠的 条评论
为什么被折叠?



