2012-07-13 34 views
3

我有三種形式的主要,銷售和登錄。如何將對話框置於最前面所有打開的表格

在主窗體中我有一個計時器,例如5分鐘後登錄窗體將被激活。

我可以在主窗體打開一個銷售窗體,然後關閉主窗體,因此登錄窗體將被激活。

問題是登錄表單並不關注銷售表單的頂部,因此用戶必須登錄才能使用銷售表單。

主窗體上的某些代碼:

public void timer_Tick(object sender, EventArgs e) 
     { 
      timer.Stop(); 
    LoginDialog loginForm = new LoginDialog(); 
       loginForm.TopLevel = true; 
       loginForm.ShowDialog(); 
timer.Start() 
} 

private void pbSales_Click(object sender, EventArgs e) 
     { 
      Sales salesForm = new Sales(); 
      salesForm .ShowDialog(this); 
     } 

回答

1

反覆折騰我認爲這個問題是您呼叫從MainFormShowDialog,你有銷售形式也打開了。

該對話框的父恰好是MainForm,所以也許你可以嘗試使用

loginForm.ShowDialog(saleform1);

salesform1是你從主窗體打開銷售表的實例名稱。

+0

是的這就是我問的。在發佈loginForm.ShowDialog(new Sales())之前,我已經嘗試了該方法;銷售是形式。 – Alvin 2012-07-13 10:27:13

+0

以及你如何顯示銷售表格? – V4Vendetta 2012-07-13 10:30:14

+0

從主窗體Sales salesForm = new Sales(); salesForm .ShowDialog(this);請參閱上面編輯的代碼。 – Alvin 2012-07-13 10:31:47

4

編輯兩者

嘗試組合,這將可能會爲你工作..

private void frmMain_Shown(object sender, EventArgs e) 
{ 
// Make this form the active form and make it TopMost 
this.ShowInTaskbar = false; 
this.TopMost = true; 
this.Focus(); 
this.BringToFront(); 
this.TopMost = false; 
} 

嘗試了這一點

yourForm.TopMost = true; 

Control.BringToFront Method

yourform.BringToFront() 
+0

我試了兩個。最重要的是在我開放的所有節目之上。 – Alvin 2012-07-13 10:11:01

+0

TopMost非常棒,如果它不在我開放的所有其他程序之上,如瀏覽器。 – Alvin 2012-07-13 10:12:35

+0

@KelvinFixx - 嘗試dited答案可能適合你.... – 2012-07-13 10:17:47

0

TopMostBringToFront()

相關問題