I am developing a windows form application in C#. This application shows some text on the Form when a special kind of external event occurs (For example suppose that I want to write "Mouse is on upper line" on form when in the mouse's position y=0). I need to bring the Form to top of every other window when the event occurs.
Asked
Active
Viewed 6,222 times
5
-
I've edited your question to try to make it more clearer but it still is unclear, what do you mean "mouse's position y=0" – Sayse Aug 13 '15 at 06:45
-
you have to use mdiparent and mdichild to different classes and show them in front , activate or whatever. – Sakthivel Aug 13 '15 at 06:49
-
@Sayse: It is not important at all. I just wanted to bring an example of an event. – Ahmad Sadigh Aug 13 '15 at 06:55
3 Answers
5
Use this in you form class:
public void BringToTop()
{
//Checks if the method is called from UI thread or not
if (this.InvokeRequired)
{
this.Invoke(new Action(BringToTop));
}
else
{
if (this.WindowState == FormWindowState.Minimized)
{
this.WindowState = FormWindowState.Normal;
}
//Keeps the current topmost status of form
bool top = TopMost;
//Brings the form to top
TopMost = true;
//Set form's topmost status back to whatever it was
TopMost = top;
}
}

Ahmad Sadigh
- 63
- 1
- 7

John Steven
- 68
- 5
-
-
1I got help from another person and know I am just passing it to you. – John Steven Oct 06 '15 at 09:34
2
According to this source you can simply do form.Activate();
P.S. You may find this information useful too.

Fabjan
- 13,506
- 4
- 25
- 52
0
Try to use this
yourForm.TopMost = true;

Smudoo
- 562
- 3
- 11
-
-
1
-
1It gives me run-time error. From exceptions message, I think I can not change the value from another thread. – Ahmad Sadigh Aug 13 '15 at 06:57