2、注意:窗口创建和窗口创建完畢即有句柄完全是两回事!!!
窗口创建时窗口并没有创建句柄,只有Application.Run(form)或者form.Show()之后才有句柄即窗口只有显示或者启动消息循环后才有句柄!如果创建form之后Form form = new Form(),主线程中调用form.Handle,如果句柄尚未创建引用该属性将强制创建句柄,对系统内的逻辑将产生致命的影响
3、如何判断一个窗口的句柄创建完毕?
利用IsHandleCreated 属性:此属性指示控件是否有与他关联的句柄如果已经为控件分配了句柄,则为 true;否则为 false
通常,不应该直接调用 CreateHandle 方法首选的方法是调用 CreateControl 方法,此方法在创建控件时强制为该控件及其子控件创建一个句柄给继承者的说明 在派生类中重写 CreateHandle 时,請确保调用了基类的 CreateHandle 方法以便确保已创建该句柄。
(5)、FromHandle :返回当前与指定句柄关联的控件
(6)、Handle :获取控件绑定到的窗口句柄Handle 属性的值是 Windows HWND。洳果句柄尚未创建引用该属性将强制创建句柄。
(7)、IsHandleCreated :指示控件是否有与他关联的句柄如果已经为控件分配了句柄,则为 true;否则为 false
句柄是随机量,两次运行一般都会得到两次不同的结果