James T
James T

Reputation: 3320

Visual C# Window Behaver

I have a form which instances a new form that I've already created using

statuswindow statwin = new statuswindow();
statwin.ShowDialog();
return statwin;

This code is in a function. The problem is when I run the function in other code the next line of code doesn't run until the newly instanced window is closed by the user, I'm guessing this is the side-effect of using ShowDialog(), is there a way to have it use the same behaver (being topmost, not being to select the other main window) while still letting the main form's code run?

Update: Although Show(); will work, I need to be able to make the window like a dialog by having it always on top of the other window and it always being the active selected window.

Upvotes: 1

Views: 161

Answers (2)

Jon Watte
Jon Watte

Reputation: 7198

To make the new window always on top, you could set the Topmost window flag in the form properties. To make the window run in a separate thread, first spawn the thread, then create the window from that thread. There are also "application modal" and "system modal" Win32 window flags, but I don't know if those are exposed to WinForms or not -- go have a look on the form properties!

Upvotes: 1

Warbum
Warbum

Reputation: 68

The ShowDialog method of showing a window shows it as a dialog, which is a blocking mechanism within C#/.net. If you want to simply display the window and not cause the running code to block until it is closed, you can use the window.Show() function.

In your code:

startwin.Show();

This will cause the startwin form to become visable to the user, and will fire the startwin.VisibleChanged event as well as the startwin.Load event to fire.

Upvotes: 3

Related Questions