Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
表单需要IntPtr(VB.Net)_.net_Vb.net_Winforms_Handle_Intptr - Fatal编程技术网

表单需要IntPtr(VB.Net)

表单需要IntPtr(VB.Net),.net,vb.net,winforms,handle,intptr,.net,Vb.net,Winforms,Handle,Intptr,我需要一张表格的intPtr。FromHandle(Control)通过句柄为我提供控件,但我需要相反的方法——从控件获取句柄。我该怎么做?试试看 Dim handle As IntPtr = someControl.Handle 注意:这仅在创建控件的句柄后才起作用。在创建控件和渲染到某种程度(可能返回IntPtr.Zero)之间有一个时间窗口,请重试 Dim handle As IntPtr = someControl.Handle 注意:这仅在创建控件的句柄后才起作用。在创建控件和渲染

我需要一张表格的intPtr。FromHandle(Control)通过句柄为我提供控件,但我需要相反的方法——从控件获取句柄。我该怎么做?

试试看

Dim handle As IntPtr = someControl.Handle
注意:这仅在创建控件的句柄后才起作用。在创建控件和渲染到某种程度(可能返回IntPtr.Zero)之间有一个时间窗口,请重试

Dim handle As IntPtr = someControl.Handle
注意:这仅在创建控件的句柄后才起作用。在创建控件和渲染到某种程度(可能返回IntPtr.Zero)之间有一个时间窗口

注意:这仅在创建控件的句柄后才起作用。在创建控件和渲染到某种程度(可能返回IntPtr.Zero)之间有一个时间窗口

我不同意JaredPar的观点:如果句柄尚未创建,句柄属性的get访问器将调用CreateHandle(您可以通过Reflector进行检查)。意识到这一点很重要,因为在某些情况下,这可能会产生意想不到的后果

注意:这仅在创建控件的句柄后才起作用。在创建控件和渲染到某种程度(可能返回IntPtr.Zero)之间有一个时间窗口


我不同意JaredPar的观点:如果句柄尚未创建,句柄属性的get访问器将调用CreateHandle(您可以通过Reflector进行检查)。注意这一点很重要,因为在某些情况下,它可能会产生意外的后果

请检查reflector中的方法。在某些情况下,它根本不会创建句柄。它不一定会发生,但在某些配置下可能会发生。我必须承认我没有分析CreateHandle方法的代码。。。现在我做了,我发现它有点混乱,我不确定它是否总是创建句柄。所以也许你最终是对的;)@Thomas,有一个非常极端的情况,底层状态阻止了句柄的创建。我只知道它存在,因为我以前打过它,因为我假设句柄在被处理之前是有效的。已经2年了,所以我记不起细节(只有痛苦:)。请查看reflector中的方法。在某些情况下,它根本不会创建句柄。它不一定会发生,但在某些配置下可能会发生。我必须承认我没有分析CreateHandle方法的代码。。。现在我做了,我发现它有点混乱,我不确定它是否总是创建句柄。所以也许你最终是对的;)@Thomas,有一个非常极端的情况,底层状态阻止了句柄的创建。我只知道它存在,因为我以前打过它,因为我假设句柄在被处理之前是有效的。已经2年了,所以我记不起细节(只有痛苦:)。