我正在创建一个静音打印模块。我正在使用的当前控件是,它确保已经创建了控件句柄(IsHandleCreated
)。我做了一切来欺骗这一点,没有运气。
您是否有想法如何在不在屏幕上显示控件的情况下为控件创建句柄?
答案 0 :(得分:21)
您必须访问句柄属性(将结果放入虚拟变量或其他内容)。看看Reflector;它强制创造句柄。
答案 1 :(得分:5)
尝试重载CreateParams
属性getter。在其中清除WS_VISIBLE
标志。
答案 2 :(得分:2)
我对其他一些控件遇到了同样的问题并使用了Control.CreateControl()
方法:
private void CheckForExistingHandle(Control control)
{
if (!control.IsHandleCreated)
control.CreateControl();
}
但我不知道它如何与打印模块一起使用。
答案 3 :(得分:0)
我通过设置CreationParams的WS_VISIBLE解决了这个烦人的句柄创建问题。您可以覆盖Control的CreationParams属性,也可以使用适当的CreateParams实例调用CreateHandle方法。请参阅link
答案 4 :(得分:0)
调用私有方法CreateHandle将完成工作。
<script>
function toggle_interval(x)
{
if(x==1)
{
var i=0;
var goint = setInterval(function() {
i++;
}, 2000);
}else{
clearInterval(goint);
}
}
</script>
<a href="#" onclick="javascript:toggle_interval(1);">start</a>
<a href="#" onclick="javascript:toggle_interval(0);">stop</a>