如何将(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);
}
}
}
//
答案 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
将始终为假。