Как вывести модальную форму C# на вершину?
I have requirement in my application where I have to show a form whenever the user clicks on some label.If no other application is on the front at the time I click on the label, the form is coming on top else it is coming in the taskbar.I have Cancel and submit options in the form.Once I click on cancel option the form gets hidden.And the next time I click on the label the form comes on top of everything irrespective of what other applications are open.Following is the portion of code I am using.
private void ShowDataForm(string pageId, int timeout) { if (DataFormDlg.Instance.InvokeRequired) { DataFormDlg.Instance.BeginInvoke(new ShowDataFormDelegate(ShowDataForm), pageId, timeout); return; } if (!DataFormDlg.Instance.Visible) { DataFormDlg.Instance.ShowDialog(); } else { DataFormDlg.Instance.Focus(); } }
I have also read the following lines form msdn which is confusing me more. "If a form is displayed as modal, the code following the ShowDialog method is not executed until the dialog box is closed. However, when a form is shown as modeless, the code following the Show method is executed immediately after the form is displayed." Please give any alternate solutions.
Что я уже пробовал:
Я попробовал puiing form. BringToFront (), Form.Активация (), Форма.TopMost=true. Кажется, ничего не работает
Ralf Meier
Ваше требование мне не совсем понятно.
Почему вы используете Form. ShowDialog, а не Form.Показать ?
Метод Form.BringToFront работает только с формой.Шоу-то .ShowDialog делает это автоматически.
форма.TopMost также будет работать только с Form. Show. Он понимает, что эта форма отображается поверх другой формы - не зависящей от времени их создания (за исключением того, что новая форма установлена на самый верх).