Winform主窗体设计

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Winform主窗体设计相关的知识,希望对你有一定的参考价值。

主窗体顶部为菜单按钮,子窗体内嵌入Panel显示

界面如下:

技术分享

第二步,主窗体离不开的几个方法

    1,点击菜单功能,加载子窗体

      private void btnOpenForm_Click(object sender, EventArgs e)
        {
            try
            {
                string frmName = ((ButtonX)sender).Tag.ToString();
                CloseForm();
                Form objForm =
                  (Form)Assembly.LoadFrom("CardManager.EXE").CreateInstance("CardManager." + frmName);
                this.OpenForm(objForm);
            }
            catch (Exception ex)
            {

                MessageBox.Show("错误提示:" + ex.Message,"提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

        }

 

     2,打开窗体方法

        private void OpenForm(Form objForm)
        {
            objForm.TopLevel = false;
            objForm.Parent = this.pnlFill;
            objForm.FormBorderStyle = FormBorderStyle.None;
            objForm.StartPosition = FormStartPosition.CenterParent;
            objForm.WindowState = FormWindowState.Maximized;
            objForm.Show();
        }

 

    3,关闭窗体方法

        private void CloseForm()
        {
            foreach (Control item in this.pnlFill.Controls)
            {
                if (item is Form)
                {
                    Form objFrm = item as Form;
                    objFrm.Close();
                    this.pnlFill.Controls.Remove(item);
                }
            }
        }

     4,关闭系统事件的处理 ,用到窗体的FormClosing事件

      private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            DialogResult result = MessageBox.Show("真的要关闭系统吗?", "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
            if(result==DialogResult.Cancel)
            {
                e.Cancel = true;
            }
        }

 

以上是关于Winform主窗体设计的主要内容,如果未能解决你的问题,请参考以下文章

C# winform 界面美化技巧(扁平化设计) (转)

winform主窗体被子窗体影响而缩小?

C# WinForm窗体界面设置问题

C#的winform程序,主窗体的调用问题

C#winform中在一个主窗体中打开几个子集窗口,如何让子集窗口在主窗体中平均分布

winform 怎么让子窗体显示在主窗体上?