using System; using System.Windows.Forms; namespace Eas.Client { /// /// 窗口管理辅助类 /// public sealed class FormHelper { private FormHelper() { } /// /// 获取MDI父窗口是否有窗口标题为指定字符串的子窗口(如果已经存在把此子窗口推向前台) /// /// MDI父窗口 /// 窗口标题 /// public static bool ExistWin(Form MDIwin, string caption) { bool R = false; foreach (Form f in MDIwin.MdiChildren) { if (f.Text == caption) { R = true; f.Show(); f.Activate(); break; } } return R; } /// /// 唯一加载某个类型的窗体,如果存在则显示,否则创建。 /// /// 主窗体对象 /// 待显示的窗体类型 /// public static Form LoadMdiForm(Form mainDialog, Type formType) { bool bFound = false; Form tableForm = null; foreach (Form form in mainDialog.MdiChildren) { if (form.GetType() == formType) { bFound = true; tableForm = form; break; } } if (!bFound) { tableForm = (Form)Activator.CreateInstance(formType); tableForm.MdiParent = mainDialog; tableForm.Show(); } //tableForm.Dock = DockStyle.Fill; //tableForm.WindowState = FormWindowState.Maximized; tableForm.BringToFront(); tableForm.Activate(); return tableForm; } /// /// 把控件附加到窗体上弹出 /// /// 待显示的控件 /// 窗体显示的标题 public static void PopControlForm(Type control, string caption) { object ctr = Reflection.CreateInstance(control); if ((typeof(Control)).IsAssignableFrom(ctr.GetType())) { Form tmp = new Form(); tmp.WindowState = FormWindowState.Maximized; tmp.ShowIcon = false; tmp.Text = caption; tmp.ShowInTaskbar = false; tmp.StartPosition = FormStartPosition.CenterScreen; Control ctrtmp = ctr as Control; ctrtmp.Dock = DockStyle.Fill; tmp.Controls.Add(ctrtmp); tmp.ShowDialog(); } } /// /// 弹出窗体 /// /// 待显示的窗体类型 public static void PopDialogForm(Type type) { object form = Reflection.CreateInstance(type); if ((typeof(Form)).IsAssignableFrom(form.GetType())) { Form tmp = form as Form; tmp.ShowInTaskbar = false; tmp.StartPosition = FormStartPosition.CenterScreen; tmp.ShowDialog(); } } } }