custom usercontrol - 将表单放到前面

时间:2010-06-06 11:22:03

标签: .net

如何将(form_x)带到前面。 我有一个自定义的usercontrol打开(form_x),我将这个usercontrol用于我的所有表单。现在的问题是usercontrol打开一个新的(form_x)而不是将(form_x)带到前面。

我的控制

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);
        }
    }
}

//

1 个答案:

答案 0 :(得分: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的新实例,然后检查它是否在Applications打开表单列表中。它不会。

这意味着isFormOpen将始终为假。