2010-06-06 23 views
0

如何將(form_x)帶到前面。 我有一個自定義的用戶控件打開(form_x),我用這個用戶控件的所有表單。現在問題在於usercontrol會打開一個新的(form_x)而不是將(form_x)帶到前面。custom usercontrol - 將表單帶到前面

我控制

namespace template 
{ 
    public partial class Background : UserControl 
    { 

     IniFile ini = new IniFile(System.IO.Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath) + @"\config.ini"); 

     public Background() 
     { 
      InitializeComponent(); 
      //Console.WriteLine(FilterNumbers("1.0.0.0. beta")); 
      //Console.WriteLine(FormatFileSize(125463)); 
     } 

     private void lbl_About_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 
     { 
         frm_about formOptions = new frm_about(); 
     bool isFormOpen = false; 
     foreach (Form frm in Application.OpenForms) 
     { 
      if (frm is frm_about) 
      { 
       frm.BringToFront(); 
       isFormOpen = true; 
       break; 
      } 
     } 
     if (!isFormOpen) 
      formOptions.Show(); 
     else 
      formOptions.Dispose(); 
     } 

     private void ThisRefresh() 
     { 
      this.lbl_About.Visible = _About; 
      this.lbl_About.Enabled = _AboutE; 
     } 

     private bool _AboutE; 
     public bool AboutE 
     { 
      get { return _AboutE; } 
      set { _AboutE = value; ThisRefresh(); } 
     } 



     public static string FilterNumbers(string mightContainNumbers) 
     { 
      if (mightContainNumbers == null || mightContainNumbers.Length == 0) return ""; 

      StringBuilder builder = new StringBuilder(mightContainNumbers.Length); 
      foreach (char c in mightContainNumbers) 
       if (Char.IsNumber(c)) 
        builder.Append(c); 

      return builder.ToString(); 
     } 
     public static string FormatFileSize(long fileSize) 
     { 
      if (fileSize < 0) throw new ArgumentOutOfRangeException("fileSize"); 

      if (fileSize >= 1024 * 1024 * 1024) return string.Format("{0:########0.00} GB", ((double)fileSize)/(1024 * 1024 * 1024)); 
      else if (fileSize >= 1024 * 1024) return string.Format("{0:####0.00} MB", ((double)fileSize)/(1024 * 1024)); 
      else if (fileSize >= 1024) return string.Format("{0:####0.00} KB", ((double)fileSize)/1024); 
      else return string.Format("{0} bytes", fileSize); 
     } 
    } 
} 

//

+0

你可以發佈你現有的代碼嗎? – ChrisF 2010-06-06 11:24:21

+0

嗨,你的意思是什麼代碼?如果你問我如何將(form_x)帶到前面,我必須說我還沒有。 (更新了問題)。感謝您輸入 – 2010-06-06 11:47:44

回答

0

我覺得你的問題是在這裏:

frm_about formOptions = new frm_about(); 
bool isFormOpen = false; 
foreach (Form frm in Application.OpenForms) 
{ 
    if (frm is frm_about) 
    { 
     frm.BringToFront(); 
     isFormOpen = true; 
     break; 
    } 
} 

你創造一個frm_about新實例,然後檢查是否它位於應用程序打開表單的列表中。它不會。

這將意味着isFormOpen將始終爲假。

+0

(問題修復)我感謝您的時間。 – 2010-06-06 12:10:40