C#编程 - Windows交互式图形界面

C#学习笔记:

第一小节:开发应用程序的步骤

在使用C#开发应用程序时,一般包括创建项目,界面设计,设置属性,编写程序代码,保存项目,运行项目六个步骤。

步骤一:创建项目
  1. 在Visual Studio 2017中依次选择“文件” -->“新建” --> “项目”,弹出“新建项目”对话框
  2. 选择“Windows窗体应用程序(.NET Framework)”输入创建的项目名称,选择项目保存路径,然后单击“确定”按钮即可创建一个Windows窗体应用程序
步骤二:界面设计
  1. 项目创建完成后,在Visual Studio 2017中会有一个默认窗体,可以通过工具箱向其中添加各种控件来设计窗体界面

  2. 具体步骤是,选定工具箱中要添加的控件,将该控件拖放到窗体中的指定位置

  3. 比如,向窗体中添加两个Label控件,两个TextBox控件,两个Button控件

  4. 效果如下:

在这里插入图片描述

步骤三:设置属性
  1. 在窗体中选择指定控件,在“属性”窗口中对控件的相应属性进行设置。
名称 属性 设置值
label1 Text 用户名:
label2 Text 密 码:
button1 Text 登录
button2 Text 退出
  1. 效果如下:

在这里插入图片描述

步骤四:编写程序代码
  1. 双击两个Button控件即可进入代码编辑器,并自动触发Button控件中的Click事件,在该事件中可编写代码。

  2. Button控件的默认代码为:

private void button1_Click(object sender, EventArgs e)
{
    
}
private void button2_Click(object sender, EventArgs e)
{

}
步骤五:保存项目
  1. 单击Visual Studio 2017工具栏中的全部保存按钮,保存当前项目
  2. 或依次选择“文件” --> “全部保存”,保存当前项目
步骤六:运行程序
  1. 单击Visual Studio 2017工具栏中的启动按钮,运行当前程序

  2. 或依次选择“调试” -->“开始调试”,运行当前程序

  3. 效果如下:

    在这里插入图片描述

第二小节:Form窗体
  1. Form窗体也被称为窗口,它是向用户显示信息的可视界面,是windows窗体应用程序的基本单元。

  2. 窗体的特征可以通过编程来进行设置。

  3. 窗体也是对象,窗体类定义了生成窗体的模板,每实例化一个窗体类,就产生一个窗体。

  4. .NET框架类库的System.Windows.Forms命名空间中定义的Form类是所有窗体类的基类

第一:添加和删除窗体

添加窗体

  1. 在添加窗体时,首先要创建一个Windows窗体应用程序

  2. 选中项目名称并单击鼠标右键,在弹出的快捷菜单中依次选择“添加” --> “Windows窗体”,或者依次选择“添加” --> “新建项”

  3. 选择“新建项”或“Windows窗体”后,都会打开“添加新项-EMS”对话框,选择“Windows窗体”,输入窗体名称后,单击“添加”按钮即可在项目中添加一个新的窗体

  4. 说明:不要使用关键字设置窗体的名称

在这里插入图片描述

删除窗体

  1. 在要删除的窗体名称上单击鼠标右键,在弹出的快捷菜单中单击“删除”按钮即可将窗体删除
    在这里插入图片描述
第二:多窗体的使用

一个完整的Windows窗体应用程序是由多个窗体组成的,每个窗体实现不同的功能

多窗体的建立

1.  多窗体的建立是指在某个项目中添加多个窗体。

2.  说明:在添加多个窗体时,其名称不能相同

设置启动窗体

  1. 当在项目中添加了多个窗体以后,如果要调试程序,必须要设置先运行的窗体,即设置项目的启动窗体

  2. 项目的启动窗体是在Program.cs文件中设置的,在Program.cs文件中改变Run方法的参数即可实现设置启动窗体

  3. Run方法用于在当前线程上开始运行标准应用程序,并使指定窗体可见

    //Run()方法的语法如下
    public static void Run(Form mainForm)
    //mainForm:要设为启动窗体的对象
    
  4. 举例:将Form1设置为项目的启动窗体

    Application.Run(new Form1());
    

在这里插入图片描述

第三:窗体的属性

窗体包含一些基本的组成要素,如图标,标题,位置和背景等。这些要素可以通过窗体的“属性”窗口进行设置,也可以通过代码进行设置。但是为了快速开发Windows窗体应用程序,通常都是通过“属性”窗口进行设置的。

更换窗体的图标

  1. 添加完成一个新的窗体后,窗体的图标是系统默认的图标。如果需要更换窗体的图标,可以在“属性”窗口中设置窗体的Icon属性
  2. 步骤一:选中窗体并在窗体的“属性”窗口中选中Icon属性,会出现在这里插入图片描述按钮
  3. 步骤二:单击在这里插入图片描述按钮,打开选择图标文件的窗体
  4. 步骤三:选择新的窗体图标文件,单击“打开”按钮,完成窗体图标的更换

隐藏窗体的标题栏

  1. 在某些情况下需要隐藏窗体的标题栏,例如,软件的加载窗口大多都采用无标题栏的窗体。

  2. 通过设置窗体的FormBorderStyle属性的属性值可以隐藏窗体的标题栏

  3. FormBorderStyle属性有7个属性值:

    属性值 说明
    Fixed3D 固定的三维边框
    FixedDialog 固定的对话框样式的粗边框
    FixedSingle 固定的单行边框
    FixedToolWindow 不可调整大小的工具窗口边框
    None 无边框
    Sizable 可调整大小的边框
    SizableToolWindow 可调整大小的工具窗口边框
    1. 只要将FormBorderStyle属性设置为None即可隐藏窗体的标题栏
    2. form border style 窗体边框样式,在“属性”窗口的外观中

设置窗体的显示位置

  1. 窗体在显示器中加载时的位置可以通过窗体的StartPositong属性进行设置
属性值 说明
CenterParent 窗体在其父窗体中居中
CenterScreen 窗体在当前显示窗口中居中,其尺寸在窗口大小中指定
Manual 窗体的位置由Location属性确定
WindowDefaultBounds 窗体在Windows默认位置,其边界也由Windows默认指定
WindowsDefaultLocation 窗体在Windows默认位置,其尺寸在窗口大小中指定
  1. 在设置窗体的显示位置时,只需要根据不同需要选择属性值即可。

设置窗体的大小

  1. 窗体的大小可以通过Size属性进行设置。

  2. 双击窗体的“属性”窗口的Size属性,可以看到其下拉菜单中有Width和Height两个属性,分别用于设置窗体的宽和高

  3. 说明:在设置窗体的大小时,若窗体的值是Int32(整数)类型的,不能使用单精度和双精度(小说)进行设置

在这里插入图片描述
设置窗体的背景图片

为了使窗体更加美观,通常需要设置窗体的背景。

  1. 窗体的背景主要通过窗体的BackgroundImage属性进行设置

  2. 步骤一:选中窗体“属性”窗口中的BackgroundImage属性,会出现在这里插入图片描述按钮

  3. 步骤二:单击在这里插入图片描述按钮,打开“选择资源”对话框

在这里插入图片描述

  1. 在“选择资源”对话框中,有两个单选按钮,一个是“本地资源”对话框,另一个是“项目资源文件”单选按钮。这两个单选按钮的不同之处在,选中“本地资源”单选按钮后,直接选择图片,保存的是图片的路径;而选中“项目资源文件”单选按钮后,会将选择的图片保存到项目资源文件Resources.resx中。

  2. 无论选择哪个单选按钮,都需要单击“导入”按钮选择背景图片,单击“确定”按钮完成窗体背景图片的设置。

第四:显示与隐藏窗体

窗体的显示

  1. 如果要在一个窗体中通过按钮打开另一个窗体,就必须通过调用Show()方法显示窗体

    public void Show()
    
  2. 举例:在Form1窗体中添加一个Button按钮,在按钮的Click事件中调用Show()方法,打开Form2窗体

      private void button1_Click(object sender, EventArgs e)
      {
          Form2 form2 = new Form2();//创建Form2窗体的对象
          form2.Show();//调用Show()方法显示Form2窗体
      }
    

    在这里插入图片描述

窗体的隐藏

  1. 通过调用Hide()方法可以隐藏窗体

    public void Hide()
    
  2. 举例:在Form1窗体中打开Form2窗体后,隐藏当前窗体Form1

     private void button1_Click(object sender, EventArgs e)
      {
          Form2 form2 = new Form2();//创建Form2窗体的对象
          form2.Show();//调用Show()方法显示Form2窗体
          this.Hide();//调用Hide()方法隐藏当前窗口
      }
    
    第五:窗体的事件

    Windows是事件驱动的操作系统,其对Form类的任何交互都是基于事件来实现的。Form类提供了大量事件用于响应对窗体执行的各种操作

    1. Click事件

    当单击窗体时会触发窗体的Click事件

    public event EventHandler Click
    

    举例:在窗体的Click事件中编写代码,实现当单击窗体时,弹出提示框

    private void Form1_Click(object sender, EventArgs e)
    {
        //MessageBox类,该类是一个消息提示框类,其Show()方法用来显示对话框
        MessageBox.Show("单击窗体触发Click事件");
    }
    

在这里插入图片描述

在这里插入图片描述

说明:触发窗体或控件的相关事件时,只需要选中指定的窗体或控件,单击鼠标右键,在弹出的快捷菜单中选择“属性”选项,然后在弹出的“属性”对话框中单击
在这里插入图片描述按钮,在列表中找到相应事件名称,双击即可生成该事件的代码

2. Load事件

窗体在加载时会触发窗体的Load事件,语法如下:

public event  EventHandler Load

举例:当窗体加载时,弹出提示框,询问是否产看窗体,单击“是”按钮查看窗体

private void Form1_Load(object sender, EventArgs e)
{
    if (MessageBox.Show("是否查看窗体!", " ", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == 	DialogResult.Yes)
    {

    }
}

在这里插入图片描述

3. FormClosing事件

窗体在关闭时会触发窗体的FormClosing事件,语法如下:

public event FormClosingEventHandler FormClosing

举例:在关闭窗体之前,弹出提示框,询问是否关闭当前窗体,单击“是:按钮,关闭窗体;单击”否“按钮,不关闭窗体

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    //使用if语句判断是否单击“是”按钮
    if(MessageBox.Show("是否关闭窗体","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning) == DialogResult.Yes)
    {
        e.Cancel = false; //如果单击“是”按钮则关闭窗体

    }
    else  //否则
    {
        e.Cancel = true;    //否则不执行操作
    }

}
第三节:MDI窗体

窗体是所有界面的基础,这就意味着为了打开多个文档,需要具有能够同时处理多个窗体的应用程序。MDI窗体(多文档界面)可以解决这种需求。

第一:设置MDI窗体

在MDI窗体中,具体容器作用的窗体称为父窗体;可以放在父窗体中的其他窗体称为子窗体,也称为MDI子窗体。

MDI应用程序在启动时,首先会显示父窗体。所有的子窗体都在父窗体中打开。

在父窗体中可以在任何时候打开多个子窗体。

每个应用程序只能有一个父窗体,子窗体不能移出父窗体的框架区域。

1. 设置父窗体

如果要将某个窗体设置为父窗体,只需要在窗体的”属性“窗口中将IsMdiContainer属性设置为True即可

2. 设置子窗体

父窗体设置完成后,通过设置某个窗体的MdiParent属性来将其设置为子窗体

public Form MdiParent {get;set;}

属性值为MDI父窗体

举例:

第二:排列子窗体
枚举成员 说明
Cascade 所有子窗体均层叠在父窗体的工作区内
TileHorizontal 所有子窗体均水平铺在父窗体的工作区内
TileVertical 所有子窗体均垂直平铺在父窗体的工作区

举例:排列父窗体中的的多个子窗体

程序开发步骤:

步骤一: 新建一个Windows窗体应用程序,并将其命名为Demo,默认窗体为Form1

步骤二: 将窗体Form1的IsMdiContainer属性设置为True,以用作父窗体,然后再添加三个Windows窗体,用作子窗体

步骤三: 在Form1窗体中,添加MenuStrip控件,用作该父窗体的菜单项

步骤四: 通过MenuStrip控件建立4个菜单项,分别为”加载子窗体“,“水平平铺”,“垂直平铺”,“层叠排列”。运行程序,单击“加载子窗体”菜单后,可以加载所有的子窗体,对应代码如下:

private void 加载子窗体ToolStripMenuItem_Click(object sender, EventArgs e)
{
    Form2 form2 = new Form2();  // 创建Forma2窗体的对象
    form2.MdiParent = this;   // 创建Forma2窗体的对象
    form2.Show();     // 创建Forma2窗体的对象

    Form3 form3 = new Form3();  // 创建Forma2窗体的对象
    form3.MdiParent = this;  // 创建Forma2窗体的对象
    form3.Show();  // 创建Forma2窗体的对象

    Form4 form4 = new Form4();// 创建Forma2窗体的对象
    form4.MdiParent = this;// 创建Forma2窗体的对象
    form4.Show();  // 创建Forma2窗体的对象
}

步骤五: 加载完所有的子窗体后,单击“水平平铺”菜单,使窗体中所有的子窗体水平排列:

private void 水平平铺ToolStripMenuItem_Click(object sender, EventArgs e)
{
    LayoutMdi(MdiLayout.TileHorizontal);//使用MdiLayout枚举实现窗体的水平排列
}

步骤六: 单击“垂直平铺”菜单,使得窗体中的全部子窗体垂直排列

private void 垂直平铺ToolStripMenuItem_Click(object sender, EventArgs e)
{
    LayoutMdi(MdiLayout.TileVertical);//使用MdiLayout枚举实现窗体的垂直排列
}

步骤七: 单击“层叠排列”菜单,使得窗体中的全部子窗体层叠排列

private void 层叠排列ToolStripMenuItem_Click(object sender, EventArgs e)
{
	//使用MdiLayout枚举实现窗体的层叠排列
    LayoutMdi(MdiLayout.Cascade);
}

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

©️2020 CSDN 皮肤主题: 创作都市 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值