WinForm(一) WinForm入门与基本控件使用

一.Winform入门

      WinForm 是 Windows Form 的简称,是基于 .NET Framework 平台的客户端(PC软件)开发技术,一般使用 C# 编程。在VS2019中,C# WinForm 编程需要创建「Windows窗体应用程序」项目。Windows 窗体应用程序是 C# 语言中的一个重要应用,也是 C# 语言最常见的应用。使用 C# 语言编写的 Windows 应用程序与 Windows 操作系统的界面类似,每个界面都是由窗体构成的,并且能通过鼠标单击、键盘输入等操作完成相应的功能。WinForm支持可视化设计,简单易上手,并可以接入大量的第三方UI库或自定义控件,给桌面应用开发带来了无限可能。
 

1.WinForm项目结构 

      1.WinForm项目结构
       (1)引用:包括所有的系统库文件的引用依赖
       (2)App.config:当前项目的配置文件
       (3)Form1.cs:当前窗体的事件逻辑源码
             - Form1.Designer.cs:当前窗体的控件布局源码
             - Form1.resx:当前窗体的资源文件(图片、图标、资源等)
             - 注意:
                 a.Form1.cs和Form1.Designer.cs都定义了Form1类,该类使用了Partial关键词声明,其定义的类可以在多个地方被定义,最后编译的时候会被当作一个类来处理。因此两个文件各司其职,最后合并为一个类编译。
                 b.要手动实现自定义窗体,可以添加自己的类,然后继承Form类即可
       (4)Program.cs:当前项目程序的主入口Main,启动项目,运行初始窗口

namespace WindowsFormsApp_learning
{
    //Program.cs 入口程序解读
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        //1.[STAThread]  Attributes语法,修饰Main方法。示应用程序的默认线程模型是单线程单元 (STA)
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            //2.开启窗口的消息循环,初始化并启动Form1窗口
            Application.Run(new Form1());
        }
    }
}
 

2.窗口设计与控件布局

2.窗体控件布局文件

 (1)操作:在设计界面拖拽控件,可以完成界面布局(控件大小、名称、类型、样式等)  (2)原理:设计界面自动关联Form1.Designer.cs文件,在InitializeComponent()方法中会自动生成相关代码

 (3)设计原则:

         - Form1.Designer.cs文件:窗体控件布局文件,一般【不需要我们修改】,只要通过设计界面代码就会自动生成。

        - Form1.cs文件:窗体事件逻辑代码的实现,一般【需要我们手动书写】,包括触发事件、回调、数据交互、跳转等等

3.手动添加控件:不通过设计界面,有两种方式

 (1)在Form1.Designer.cs中添加:
private System.Windows.Forms.Button btn_design;//声明控件
           //默认的控件初始化方法
           InitializeComponent():{
               this.btn_design = new System.Windows.Forms.Button();//定义控件
               this.btn_design.Text = "自定义控件";//设置Text属性
               this.btn_design.Location = new Point(40,40);//设置布局位置 Point(x,y)
               this.btn_design.Size = new Size(100,40);//设置尺寸大小 Size(width,height)
               this.Controls.Add(this.btn_design);//注册控件到窗体
           }
  (2)在Form1.cs中添加:

private Button btn_design;//声明控件
           public Form1(){
               //先调用Designer.cs中的控件初始化方法
               InitializeComponent();
               this.btn_design = new System.Windows.Forms.Button();//定义控件
               this.btn_design.Text = "自定义控件";//设置Text属性
               this.btn_design.Location = new Point(40,40);//设置布局位置 Point(x,y)
               this.btn_design.Size = new Size(100,40);//设置尺寸大小 Size(width,height)
               this.Controls.Add(this.btn_design);//注册控件到窗体
           }
(3)注意:
1. 一般我们都使用拖拽添加控件,当然也有特殊情况需要我们手动添加(比如自定义控件)
         2. 窗体GUI中,左上角为原点(0,0),竖直向下为y轴,水平向右为x轴(宽度表示x轴上长度,高度表示y轴上长度),单位为像素。

3.窗口事件

 4.WinForm 自动添加事件处理
   (1)操作:在设计界面-控件属性-闪电符号(事件)-添加事件,就会在Form1.cs中自动生成该控件相应方法名称的事件触发函数
   (2) MessageBox.Show():显示弹出消息提示框
   (3)GUI界面下Console.WriteLine不显示,需要使用调试模式

namespace WindowsFormsApp_learning
{
 
    /**
     * 4.WinForm事件处理
     *  (1)操作:在设计界面-控件属性-闪电符号(事件)-添加事件,就会自动生成相应方法名称的事件触发函数
     *  (2) MessageBox:显示消息提示框
     *  (3)GUI界面下Console.WriteLine不显示,需要使用调试模式
     */
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        //Button的Click点击事件(自动添加)
        private void showMessage(object sender, EventArgs e)
        {
            MessageBox.Show("Hello World!");
        }
    }
}

 5.手动添加事件处理(以Btn_design为例)

(1)步骤:

添加按钮控件到布局

书写事件处理函数,必须符合 void function_name(object param1,EventArgs e){}的形式

添加注册事件,this.Btn_design.Click += new EventHandler(this.showTip);

(2)注意:事件处理机制用到了委托和事件的C#基础,有时间可以看一下

下一步的学习请前往 WindowsFormApp_demo1(实现一个显示本地时间的APP)

namespace WindowsFormsApp_learning
{
    /**
     * 5.手动添加事件处理(以Btn_design为例)
     *  (1)步骤:
     *      - 添加按钮控件到布局
     *      - 书写事件处理函数,必须符合 void function_name(object param1,EventArgs e){}的形式
     *      - 添加注册事件,this.Btn_design.Click += new EventHandler(this.showTip);
     *  (2)注意:事件处理机制用到了委托和事件的C#基础,有时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值