C#-WinForm-MDI窗體容器、權限設置

MDI窗體容器 - 放窗體的容器數據庫

窗體是頂級控件,是不容許放到其餘的控件或窗體中的 (李獻策lxc)this

窗體屬性中有一個屬性:IsMdiContainer - 肯定該窗體是不是MDI容器spa

在窗體中放一個頂部菜單3d

點擊<銷售>按鈕會在窗體中彈出一個新的窗體code

//銷售
        private void 銷售ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form5 f5 = new Form5();
            f5.MdiParent = this;
            f5.Show();
        }

內部窗體能夠在父級窗體裏任意移動orm

問題一:打開新的窗體全屏(李獻策lxc)blog

//銷售
        private void 銷售ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form5 f5 = new Form5();
            //窗體最大化
            f5.WindowState = FormWindowState.Maximized;

            f5.MdiParent = this;
            f5.Show();
        }

問題二:打開後有最小化、最大化等按鈕事件

錯誤方法一:去掉最大化最小化按鈕——失敗ip

//銷售
        private void 銷售ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form5 f5 = new Form5();
            //窗體最大化
            f5.WindowState = FormWindowState.Maximized;

            //去掉最大化最小化按鈕
            f5.MaximizeBox = false;
            f5.MinimizeBox = false;

            f5.MdiParent = this;
            f5.Show();
        }

錯誤方法二:去掉邊框——失敗(李獻策lxc)class

//銷售
        private void 銷售ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form5 f5 = new Form5();
            //窗體最大化
            f5.WindowState = FormWindowState.Maximized;

            //去掉邊框
            f5.FormBorderStyle = FormBorderStyle.None;

            f5.MdiParent = this;
            f5.Show();
        }

正確方法:先用一個panel填充窗體剩餘部分,在panel中打開新窗體

//銷售
        private void 銷售ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form5 f5 = new Form5();
            //窗體最大化
            f5.WindowState = FormWindowState.Maximized;

            //去掉邊框
            f5.FormBorderStyle = FormBorderStyle.None;

            f5.MdiParent = this;

            //設置新窗體的Parent
            f5.Parent = panel1;

            f5.Show();
        }

問題三:在即將打開的新窗體中放入一個button1,Anchor設置爲Bottom,Right,當打開新窗體並拖動窗體邊框時,按鈕並未鎖定與底部和右側的距離

panel是跟隨窗體的變化而變化,可是新窗體是不隨panel變化而變化的 

  

解決方法:設置主窗體的size發生改變時新窗體同時改變size(李獻策lxc) 

//Size改變時的事件
        private void Form3_SizeChanged(object sender, EventArgs e)
        {
            //遍歷panel中的控件,
            foreach (var v in panel1.Controls)
            {
                //若是是新窗體
                if (v is Form5)
                {
                    //新窗體先變爲正常大小
                    (v as Form5).WindowState = FormWindowState.Normal;
                    //新窗體再變爲最大化以適應新的Size
                    (v as Form5).WindowState = FormWindowState.Maximized;
                }
            }
        }

問題四:在點擊<倉庫>按鈕時,會在主窗體中打開一個新的窗體,再點擊<銷售>按鈕會切回銷售窗體,但實際是又建立了一個新的銷售窗體而已,並不是原來打開的窗體

解決辦法:惟一窗體(李獻策lxc)

==========================================================

權限設置 - 不一樣的權限登入時顯示內容不一樣

新建一個登入窗體

數據庫中添加一個新的權限表

相關文章
相關標籤/搜索