2013-01-22 88 views
0

我試圖用另一種形式創建窗體實例,然後將該窗體添加到主窗體中。但我添加的表單沒有顯示。我想在所有控件的頂部顯示該表單。如何將一個窗體添加到另一個窗體winform項目

這裏是我的代碼

BBA.Controls.ExecludeSpecialist ucExecludeSpecialist = null; 
Form frmContainer = null; 

private void btnExclude_Click(object sender, EventArgs e) 
{ 
    if (ucExecludeSpecialist != null) 
    { 
     if (frmContainer != null) 
     { 
      frmContainer.Controls.Remove(ucExecludeSpecialist); 
      ucExecludeSpecialist = null; 
     } 
    } 

    if (frmContainer != null) 
    { 
     this.Controls.Remove(frmContainer); 
     frmContainer = null; 
    } 

    frmContainer = new Form(); 
    frmContainer.ControlBox = false; 
    frmContainer.StartPosition = FormStartPosition.Manual; 
    frmContainer.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 

    ucExecludeSpecialist = new BBA.Controls.ExecludeSpecialist(); 
    ucExecludeSpecialist.SaveClicked += 
     new BBA.Controls.ExecludeSpecialist.SaveComplete(OnSaveClicked); 
    ucExecludeSpecialist.CloseClicked += 
     new BBA.Controls.ExecludeSpecialist.CloseComplete(OnCloseClicked); 
    ucExecludeSpecialist.BringToFront(); 
    frmContainer.Height = ucExecludeSpecialist.Height; 
    frmContainer.Width = ucExecludeSpecialist.Width; 
    //frmContainer.Top = this.Height - frmContainer.Height/2; 
    //frmContainer.Left = this.Height - frmContainer.Height/2; 
    frmContainer.BringToFront(); 
    frmContainer.TopLevel = false; 
    frmContainer.Controls.Add(ucExecludeSpecialist); 
    this.Controls.Add(frmContainer); 
} 

請指導我如何顯示在另一種形式在中心的所有控件的頂部這種形式。謝謝

+0

檢查[這](http://stackoverflow.com/questions/1351322/c-sharp- winform-forms-in-form)out – AbZy

+0

嘗試添加frmContainer.Show();到您的代碼 – Kooki

+0

是的,我沒有表格顯示,但是我的表單中有一個數據網格,因此表單無法顯示在數據網格之上。那裏有任何修復嗎?我想把我的表格定位在主表單的中心,我的表單將在其他控制之上。我使用前面的,但沒有工作。 – Thomas

回答

1

如果我理解你的評論正確,你的問題是DataGrid覆蓋你最近添加的表單?嘗試:

後,您必須添加

frmContainer.Show(); 

表單建議立即進行刪除可見。之後,你應該解決您的問題,如果你以後調用frmContainer.Show();

實例調用ucExecludeSpecialist.BringToFront();

private void button1_Click(object sender, EventArgs e) 
    { 

     frmContainer = new Form(); 
     frmContainer.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 

     frmContainer.Height = this.Height/2; 
     frmContainer.Width = this.Width/2; 
     frmContainer.BackColor = Color.Red; 
     frmContainer.TopLevel = false; 
     this.Controls.Add(frmContainer); 
     frmContainer.Show(); 
     frmContainer.BringToFront(); 
    } 
相關問題