文书档案分界面,只可以在类的中间触发

只能在类的内部触发,1、单文档界面应用程序(SDI)

图片 1

即:只能为Show弹窗

一、MDI窗体设置和其子窗体设置
1、设置窗体的IsMdiContainer属性为true
2、设置MDI窗体的子窗体
子窗体1 子窗体=new 子窗体1();
子窗体.MdiParent=this;
子窗体.Show();

二、MDI窗体的子窗体排列
1、水平对齐:this.LayoutMdi(MdiLayout.TileHorizontal);
2、垂直平铺:this.LayoutMdi(MdiLayout.TileVertical);
3、层叠:this.LayoutMdi(MdiLayout.Cascade);
4、排列所以图表:this.LayoutMdi(MdiLayout.ArrangeIcons);

三、获取子窗体的多少
1、MessageBox.Show(this.MdiChildren.Length+””);

四、MDI窗体中窗口只同意展开八个
/// <summary>
/// 推断MDI子窗体是或不是存在 存在就突显
/// </summary>
/// <param name=”formName”>窗体名</param>
/// <returns></returns>
public bool IsSunFrmOpen(string formName)
{
// 子窗体是不是曾经展开了?(用循环来剖断)
foreach (Form childrenForm in this.MdiChildren)
{
//检查评定是或不是当前子窗体名称
if (childrenForm.Name == formName)
{
//是的话正是把她显示
childrenForm.Visible = true;
//恢复生机窗体的私下认可状态
childrenForm.WindowState = FormWindowState.Normal;
return true;
}
}
return false;
}

调用如下:
private void **_Click(object sender, EventArgs e)
{
//剖断名叫Form1的子窗体是或不是留存 存在就展现 不然就创办
if (!IsSunFrmOpen(“Form1”))
{
//官样文章就创办窗体对象
Form1 f1 = new Form1();
f1.MdiParent = this;
f1.Show();
}
}

public partial class mainform : Form
    {
        public mainform()
        {
            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)
        {

            #region 委托实现观察者
            childform1 c1 = new childform1();
            c1.Show();
            //窗体2/3注册到委托
            childform2 c2 = new childform2();
            c1.sendMessageDelInstance += c2.SetMessage;
            c2.Show();
            childform3 c3 = new childform3();
            c1.sendMessageDelInstance += c3.SetMessage;
            c3.Show();
            #endregion
        }

        private void button2_Click(object sender, EventArgs e)
        {

            #region 事件实现观察者模式
            childform1 c1 = new childform1();
            c1.Show();
            //窗体2/3注册到事件
            childform2 c2 = new childform2();
            c1.sendMessageEvent += c2.SetMessage;
            c2.Show();
            childform3 c3 = new childform3();
            c1.sendMessageEvent += c3.SetMessage;
            c3.Show();
            #endregion
        }
    }

文书档案分界面
分类:
1、单文书档案分界面应用程序(SDI)
特点:
1、应用程序中SDI的具备窗体都竞相独立
2、多文书档案分界面应用程序(MDI)
特点:
1、每一种应用程序中只可以有三个MDI父窗体,在父窗体中得以张开多少个MDI子窗体
2、任何MDI子窗体都只幸而父窗体内部区域活动。
3、当关闭任何子窗体时,对别的张开的子窗体以及父窗体均未有另外影响。
4、当关闭父窗体时,将闭馆全数张开的子窗体。
落到实处步骤:
1、设置MDI父窗体
安装窗体IsMdiContainer属性为true:则当前窗体为MDI父窗体
2、设置MDI子窗体代码如下
窗体名 对象名=new 窗体名();
对象名.MdiParent =this;
对象名.Show();
瞩目:MDI子窗体在弹窗出现时断定无法安装为方式弹窗

图片 2

 public partial class childform2 : Form
    {
        public childform2()
        {
            InitializeComponent();
        }
        //委托的方法
        public void SetMessage(string str)
        {
            this.textBox1.Text = str+" "+DateTime.Now.ToString();
        }

          //事件的方法
        public void SetMessage_event(string str)
        {
            this.textBox1.Text = str+" "+DateTime.Now.ToString();
        }
    } 

 差别:事件是安全的,只好在类的里边触发。

主窗体

子窗体1:

    //声明一委托
    public delegate void SendMessageDel(string str);
    public partial class childform1 : Form
    {
        public childform1()
        {
            InitializeComponent();
        }

        #region 用委托实现观察者模式
        //定义一委托的实例
        //不安全,可以被外部调用
        public SendMessageDel sendMessageDelInstance { get; set; }

        //委托的方法
        private void button1_Click(object sender, EventArgs e)
        {
            sendMessageDelInstance("委托实现观察者模式");

        }
        #endregion

        #region 用事件实现观察者模式
        //定义事件
        public event SendMessageDel sendMessageEvent;
        private void button2_Click(object sender, EventArgs e)
        {
            sendMessageEvent("事件实现观察者模式");
        }

        #endregion 


    }

子窗体2/3