6

I want create using C# window with setted parent to my defined handle, this is a other process window handle.

Anyone know how to do this?

Greetings,

2 Answers 2

7

If I understood your question correctly you should be able to achieve what you want by using something like this:

class Win32Window : IWin32Window
{
    IntPtr handle;

    public Win32Window(IntPtr handle) { this.handle = handle; }

    public IntPtr Handle
    {
        get { return this.handle; }
    }
}

static void Main()
{
    IntPtr targetParent = // Get handle to the parent window

    new MainForm().ShowDialog(new Win32Window(targetParent));
}

This will turn MainForm a child window of the specified window making it always appear above it. I use ShowDialog in the example, but this should also work for Show. This is specific for Windows Forms.

In WPF you can try the following:

var helper = new WindowInteropHelper(/* your Window instance */);

helper.Owner = // Set with handle for the parent

I quickly tried this after showing the WPF window and it seemed to work as expected, but WPF knowledge is not that great.

Sign up to request clarification or add additional context in comments.

3 Comments

Ok i will try this, but .. this is impossible for Window class? I have already code based on Window with XAML.
I assumed Windows Forms, so this would not be applicable for a WPF Window.
I updated the answer with a possible solution in WPF, but I don't make any guarantees... :)
3

I believe the Handle will be read-only; therefore, the .Parent property is read-only. However, the .Owner property has a getter and a setter (ref. MSDN) ... however, you must have a reference to the Parent window.

Without more information, I will not be able to provide much more than that.

If your parent candidate is an unmanaged Window, check this link.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.