使用dx8.11控件,Winform的Mdi中打开一次窗口,代码如下:
#region 打開窗口
private void OpenForm(string ChildTypeString)
{
DevExpress.Utils.WaitDialogForm wf = new DevExpress.Utils.WaitDialogForm("請等待......", "數據加載中:", new Size(300, 80));
DevExpress.XtraEditors.XtraForm myChild = null;
if (!ContainMDIChild(ChildTypeString))
{
try
{
Assembly assembly = Assembly.GetExecutingAssembly();
Type typForm = assembly.GetType(ChildTypeString);
Object obj = typForm.InvokeMember(null,
BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Instance | BindingFlags.CreateInstance,
null, null, null);
if (obj != null)
{
myChild = obj as DevExpress.XtraEditors.XtraForm;
myChild.MdiParent = this;
myChild.Show();
myChild.Focus();
}
}
catch //(Exception x)
{
//MessageBox.Show(x.ToString());
}
}
wf.Close();
}
private bool ContainMDIChild(string ChildTypeString)
{
DevExpress.XtraEditors.XtraForm myMDIChild = null;
foreach (DevExpress.XtraEditors.XtraForm f in this.MdiChildren)
{
if (f.GetType().ToString() == ChildTypeString)
{
myMDIChild = f;
break;
}
}
if (myMDIChild != null)
{
myMDIChild.TopMost = true;
myMDIChild.Show();
myMDIChild.Focus();
return true;
}
else
{
return false;
}
}
#endregion
=========================
调用方式:OpenForm(typeof(FrmUser).ToString());
附:一次运行一个实例:
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Threading;
namespace Attend
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
bool bCreatedNew = false;
Mutex m = new Mutex(false, "HongKongAttend", out bCreatedNew);
if (bCreatedNew)
{
FrmLogin frmLogin = new FrmLogin();
frmLogin.ShowDialog();
if (frmLogin.DialogResult.Equals(DialogResult.OK))
{
Application.Run(new FrmMain());
}
}
else
{
MessageBox.Show("系統中已有此實例運行!", "系統提示:", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
分享到:
相关推荐
可以通过此示例,学习MDI窗体的使用,以及各种窗体布置,包括: 1.垂直分布;2.水平分布;3.层叠分布
C# Winform在MDI中打开一个子窗体关闭上一个子窗体
winform判断窗体是否打开winform判断窗体是否打开winform判断窗体是否打开winform判断窗体是否打开
Winform的MDI父窗体中的子窗体最大化后消除子窗体在父窗体菜单栏中的图标。
附件中包含一个C#WinForm中父MDI窗体不重复打开子窗体的案例,父窗体在打开子窗体之前先判断子窗体是否存在,若存在则激活;若不存在,实例化并打开子窗体。开发环境:VS2012。
Winform控件随窗体缩放
C#winform判断窗体是否打开 更适用于mdi
DOTNET_C#基础快速入门教程 配套源码 DOTNET_C# MDI容器窗体的使用 源码内容包括: 1.MDI容器窗体
C# winform 子窗体调用父窗体函数实现关闭该窗体打开另一个窗体;在父窗体分From1内嵌一个panel1,在panel1里载入From2,点击在子窗体From2中的按钮,清除panel1里的From2,新载入From3,点击在子窗体From3中的按钮...
控件随winform窗体缩放
主要介绍了C#实现winform用子窗体刷新父窗体及子窗体改变父窗体控件值的方法,涉及C#窗体交互的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
实现MDI窗体的的单个子窗体显示,单个子窗体的切换
用C#在Winform上编写控件随窗体自动缩放程序,博客上有转载原文出处,但没有提供原程序,现整理如上给初学者用,以上
解决在winform中子窗体显示多个问题,仅显示一个子窗体,点击多个子窗体时候,不会显示多个。
Winform窗体只允许打开一个实例。第二次打开报错。
主要介绍了在类库或winform项目中打开另一个winform项目窗体的方法,可以实现Winform项目间窗体的调用,在进行Winform项目开发中非常具有实用价值,需要的朋友可以参考下
Winform实现的窗体任意拖动实例 隐藏窗体的标题,通过拖动窗体内容实现窗体的拖动效果
C#简单winform简单MDI窗体设计实例
1.把自适应的类整体复制到你的工程命名空间里,这样做,每个窗体均可使用。 2.声明自适应类实例。 3.为窗体添加SizeChanged事件,并在其方法Form1_SizeChanged中,首次记录窗体和其控件初始位置和大小,之后调用类的...
WinForm 关闭子窗体时刷新父窗体的数据WinForm 关闭子窗体时刷新父窗体的数据