tags:

views:

271

answers:

3

I have found the Form.TopMost property but it puts the form on top of everything, including stuff that isn't part of my app. I've got a suspicion that I'm missing something obvious here. (Is Form the proper bases class for a non modal dialog box?)

+1  A: 

You can specify parent-child relationships between windows by supplying the parent Form as parameter to the ShowDialog() method called on the child Form. The child window will then stay on top of the parent and also minimize and restore along with the parent.

Martin Liversage
I can't use ShowDialog as that makes it modal.
BCS
A: 

If i understand you correctly your opening a form from your application, and you want your new form to be on top of the old one.

To do this you can use ShowDialog() and StartPosition

SomeForm MyNewForm = new SomeForm();
MyNewForm.ShowDialog();

this will make that form stay on top of the orignal one, and you can also use

MyNewForm .StartPosition = FormStartPosition.CenterParent;

To control where that new form shows on the screen.

EKS
I can't use ShowDialog as that makes it modal.
BCS
+3  A: 

Use the Form.Owner property of your dialog form and set it to the main Form.

Read more here http://msdn.microsoft.com/en-us/library/system.windows.forms.form.owner.aspx

The Owned form will never be displayed behind the Owner Form.

CodeFusionMobile
Bingo, exactly what I need!
BCS