DSomesh Ответов: 0

Как вывести модальную форму 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. Он понимает, что эта форма отображается поверх другой формы - не зависящей от времени их создания (за исключением того, что новая форма установлена на самый верх).

0 Ответов