tags:

views:

371

answers:

4

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?

+2  A: 

Try to overload CreateParams property getter. In it clear WS_VISIBLE flag.

denisenkom
A: 

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 th link,

[http://msdn.microsoft.com/en-us/library/system.windows.forms.nativewindow.handle.aspx][1]

Mustafa Kok
+1  A: 

You have to access the Handle property (put the result in a dummy variable or something). Look in Reflector; it forces handle creation.

wj32
A: 

I had the same problem with some other controls and used the Control.CreateControl() method:

private void CheckForExistingHandle(Control control)
{
    if (!control.IsHandleCreated)
        control.CreateControl();
}

But i don't know how it works with a print module.

Oliver