2016-07-23 5 views
0

В моем приложении, когда пользователь нажимает на метку, чтобы открыть форму, форма открывается в background.I означает, что она не выходит на передний план, а скорее помещается на панель задач. после того, как пользователь отменяет этот экземпляр формы и снова нажимает на метку, форма открывается на переднем плане. При этом часть кода выполняет определенную работу.Как принести форму Windows на передний план в C#?

 if (DataFormDlg.Instance.InvokeRequired) 
     { 
      DataFormDlg.Instance.BeginInvoke(
       new ShowDataFormDelegate(ShowDataForm), pageId, timeout); 
      return; 
     } 

     DataFormDlg.Instance.CurrentPageId = pageId; 
     DataFormDlg.Instance.Timeout = timeout; 

     if (!DataFormDlg.Instance.Visible) 
      DataFormDlg.Instance.ShowDialog(); 
     else 
      DataFormDlg.Instance.Focus(); 

Здесь DataFormDlg получен из формы окна.

+0

ли вы попробовать DataFormDlg, Instance [BringToFront()] (https://msdn.microsoft.com/en-us/library/system.windows ? .forms.control.bringtofront% 28v = vs.110% 29.aspx е = 255 & MSPPError = -2147217396); – Steve

+0

yes..have try that .. –

+0

Вы пытались явно установить свойство Parent формы? –

ответ

1

Передайте текущую форму как владельцу методу ShowDialog. Форма диалога тогда никогда не сможет отстать от первой формы, даже если пользователь нажимает на первую форму.

Другим последствием является то, что вторая форма автоматически закрывается при закрытии формы владельца. Это особенно полезно, когда вторая форма открывается с Show вместо ShowDialog.

DataFormDlg.Instance.ShowDialog(this); 

используя эту перегруженную версию:.

public DialogResult ShowDialog(IWin32Window owner) 
Смежные вопросы