C# Winfrom MDI(多文檔界面)


1、首先設置父級Form1界面,只需要將該界面的IsMdiContainer屬性設置為true;

2、設置按鈕的事件來打開子級的窗口Form2,Form3等等;

3、在From1內設置一個容器panel,范圍為需要打開的子級界面的大小;

4、設置Form2、Form3的事件,以及唯一窗口等;

//Form2的點擊事件
        private void form2ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
            f2.Name = "f2";
            openwidow(f2);
        }
//Form3的點擊件
        private void form3ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form3 f3 = new Form3();
            f3.Name = "f3";
            openwidow(f3);
        }
//設置唯一窗口:
//新建一個formlist集合,供唯一窗口使用
List<Form> formlist = new List<Form>();
//新建一個public的方法
        private void openwidow(Form f)
        {
//定義一個Form fff變量
            Form fff = null;
//定義一個bool類型的變量為false;
            bool open = false;
//遍歷這個集合
            foreach (Form ff in listfrom)
            {
//只要遍歷到就隱藏
                ff.Hide();
//如果遍歷到f.name
                if (ff.Name == f.Name)
                {
                    open = true;
//把ff放到集合內
                    fff = ff;
                }
            }
//如果遍歷到f.name,
            if (open)
            {
//關閉所有窗口
                f.Close();
//重新打開這個串口
                fff.Show();
            }
//否則
            else
            {
//設置打開的窗口為Form1的子窗體;
                f.MdiParent = this;
//設置子窗口的大小為最大化;
                f.WindowState = FormWindowState.Maximized;
//把子窗口放到Form1的panel1里;
                f.Parent = panel1;
//設置無邊框
                f.FormBorderStyle = FormBorderStyle.None;
//打開窗口
                f.Show();
//把這個窗口放到集合內
                fromlist.Add(f);
            }

        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM