2010-06-06 40 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