C#笔记——【面向对象基础】(七)Windows项目界面的设计(2)

  • Post author:
  • Post category:其他




(一)添加新学员窗体设计

按钮左右的方框实际上是PictureBox,在属性中修改想要的样式;

在这里插入图片描述



使用容器中的GroupBox,可以集中管理控件

在这里插入图片描述



实现的效果如下:

在这里插入图片描述

  • 使用RadioButton设置如下选择键:

    在这里插入图片描述

  • 使用DateTimePicker设置时间:时间的格式可以自定义为:yyyy-MM-dd,这样得出下面的格式

    在这里插入图片描述

  • 使用ComboBox设置下拉框:【Web中称之为DropDownList】

    在这里插入图片描述



最后效果:

在这里插入图片描述



(二)子窗体嵌入父容器的方法



使用如下代码,实现弹出新窗口:
private void btnAddStudent_Click(object sender, EventArgs e)
        {
            FrmAddStudent objFrm = new FrmAddStudent();
            objFrm.Show();
        }


效果如图:

在这里插入图片描述

  • 这种情况下,实际上并没有实现嵌入,因为实现的是弹出新的窗口,我们现在需要的是将新的窗口嵌入到原来的窗口中,需要如下方法:


嵌入父容器,使用如下方法:
        private void btnAddStudent_Click(object sender, EventArgs e)
        {
            //嵌入窗体之前,首先判断当前容器中是不是已经存在窗体
            foreach(Control item in this.spContainer.Panel2.Controls)   //容器中所有的控件都继承自control
            {
                if(item is Form)    //Form是窗体的父类
                {
                    Form objControl = (Form)item;   //强制类型转换
                    objControl.Close();
                }
            }

            //将子窗体嵌入父容器
            FrmAddStudent objFrm = new FrmAddStudent();
            objFrm.TopLevel = false;        // 将子窗体设置为非顶级控件
            objFrm.WindowState = FormWindowState.Maximized;         //让子窗体最大化显示
            objFrm.FormBorderStyle = FormBorderStyle.None;          //去掉子窗体的边框
            objFrm.Parent = this.spContainer.Panel2;                //指定子窗体显示的容器
            objFrm.Show();
        }


展示效果:

在这里插入图片描述



封装嵌入父容器的方法【以后只需要调用即可】:
		//关闭已经打开的窗体,容器要预先定义好,当然也可以写一个带传入参数的方法
        private void ClosePreForm()
        {
            foreach (Control item in this.spContainer.Panel2.Controls)   //容器中所有的控件都继承自control
            {
                if (item is Form)    //Form是窗体的父类
                {
                    Form objControl = (Form)item;   //强制类型转换
                    objControl.Close();
                }
            }
        }
//在父容器中打开窗体;这里父容器是固定的,可以编写传入父容器的方法
        private void OpenForm(Form objFrm)
        {
            objFrm.TopLevel = false;        // 将子窗体设置为非顶级控件
            objFrm.WindowState = FormWindowState.Maximized;         //让子窗体最大化显示
            objFrm.FormBorderStyle = FormBorderStyle.None;          //去掉子窗体的边框
            objFrm.Parent = this.spContainer.Panel2;                //指定子窗体显示的容器
            objFrm.Show();
        }


这样,上面的代码简化为如下:
        private void btnAddStudent_Click(object sender, EventArgs e)
        {
            ClosePreForm(); //关闭已经存在的窗体

            //将子窗体嵌入父容器
            FrmAddStudent objFrm = new FrmAddStudent();
            OpenForm(objFrm);
        }



(三)学员信息管理窗体设计

  • 首先搭建基本的框架模型;

    在这里插入图片描述
  • 之后使用DataGridView控件;能够实时显示数据;

    在这里插入图片描述


编辑DataGridView
  • 方法(1)

    在这里插入图片描述

  • 方法(2)

    在这里插入图片描述

  • 使用下面的方法调整标题列的高度

    在这里插入图片描述

  • 使用下面的方法调整标题栏的一些属性

    在这里插入图片描述



注意:当有些标题行属性不能修改的时候一般需要修改下面的为false【当行要自定义修改时候尽量设定为false】

在这里插入图片描述



版权声明:本文为forever_008原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。