当前位置: 首页 > news >正文

WinFrom真入门(1)——Windows窗体应用概念

窗体的基本结构

用Winform开发的桌面程序,是在Windows操作系统上运行的,这个不用多说。窗体(Form)的作用‌:窗体是用户交互的容器,承载按钮、文本框等控件,构成应用程序的界面‌。

在Windows操作系统中,窗体(窗口)所处可见,例如:
一个标准的窗体

1、客户区域:

一个标准的窗体其实就是一块矩形区域,客户区域指的是窗口内部区域。除去标题兰和边框外的区域可视为内部区域,称为客户区域。我们开发人员可以在窗口的客户区域中放置控件,也可以在其中绘制出咱们所需要的图形。

2、控件

  • 控件被封装到类中,作为数据在应用程序中流动的载体。它公开一系列属性和方法,开发者可以直接调用它们来完成许多常规任务。控但也属于一类组件,控件开发者完成控件开发后会将其发布为一个或多个组件库,组件库可以被直接使用。
  • 多数控件都支持可视化,它们充当程序与用户交互的桥梁。用户可以通过键盘、鼠标或者其他输人设备对控件进行操作。程序代码可以处理控件事件或者从控件公开的属性中获取数据来确定用户进行了哪些操作,并适当地做出响应。比如,一个按钮控件会公开一个 Click 事件该事件会在用户单击按钮时发生,应用程序代码可以订阅该事件,只要 Click 事件发生,程序就知道用户对控件进行了操作。这时就应当按照实际需要对用户的操作给予反馈。

3、程序项目结构

WinForm程序的项目的结构,如下图:

在这里插入图片描述

  • Windows 窗体应用程序也称 WindowsForms应用程序(简称WinForm应用)。上图展示了一个普通的 Windows 窗体应用程序项目的基本结构。
  • 首先要:找到 Main 方法,Main 方法是整个应用程序的人口点。因此,以 Main 作为起点来认识 Windows窗体应用程序会比较容易理解整个应用程序是如何执行的。
  • Windows 窗体应用程序的 Main,方法在、Progam.cs 文件中,项目模板生成的默认类名也叫 Program。打开代码文件后,会看到 Main 方法中的代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    internal static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

Main()方法是程序的入口,这几行代码对于理解 Windows 窗体应用程序有很大帮助。先看前面两行

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);

这两行代码是项目模板自动生成的,不用过多关注。

  • 调用Application.EnableVisualStyles();方法可以开启可视化视觉效果。Windows操作系统从XP开始使用了一种新的控件视觉效果,使得控件看起来更美观,调用该方法就是告诉操作系统,应用程序也应用视觉效果。
  • Application.SetCompatibleTextRenderingDefault(false);主要是对控件上的文本呈现做兼容性处理。

重点是第三行代码

Application.Run(new Form1());
  • Form1是项目模板生成的一个窗口类,它派生自 System.Windows.Forms.Form 类,它表示一个标准的Windows 窗口。这就可以解释为什么把 Windows 窗体应用程序称为“Windows Foms 应用程序”或简称为“WinForm 应用程序”了,因为 Form 类封装了与窗口相关的信息。

  • 调用 Application 类的 Run 方法就会启动一个消息循环,并且需要等待消息循环退出,Run 方法才会返回。代码是一行一行地往下执行的,从 Main 方法的人口位置开始执行,当代码执行完 Main 方法后应用程序就会退出,正因为 Run方法启动了一个消息循环,才使应用程序在 Run方法处停下来,等到用户将其关闭或者操作系统要结束当前进程时才会退出 Main 方法。(这个前期了解一下即可,不用深究,随着学习,自然而然会明白的)

4、创建一个Winform程序

开发Winform程序,需要用到可视化开发工具,这里用的是微软官方提供的Visual Studio,简称VS,非常好用,非常强大的IDE工具。下载安装请看 开发工具Visual Studio下载和安装超级详细
打开VS,开始创建项目:

  • 在VS的顶部菜单栏中,依次执行【文件】,【新建】,【项目】,会打开“新建项目窗体”

在这里插入图片描述

  • 在新建项目模板中,找到Windows窗体应用,有两个选择,一般现在都用(.NET FrameWork)开发,直接选择后,点击右下角【下一步】,进入配置新项目窗体,

在这里插入图片描述
配置新项目窗体,在这里可以配置 项目名称,存放位置,解决方案名称,还有选择合适的.NET FrameWork框架版本号,一般选择4.0往后的,太老的版本,基本不用了。选择好后,点击右下角【创建】,等待即可
在这里插入图片描述
程序创建好后,会进入这个页面
在这里插入图片描述
点击启动后,程序会运行起来。一个简单的Windows窗体应用已经开发好了。
在这里插入图片描述

总结:本章主要讲了窗体的基本概念,程序的入口以及如何创建一个窗体应用。都是是比较好理解的,要熟记于心,后面会一直伴随着我们开发Winfom程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/100757.html

相关文章:

  • 华为配置篇-BGP实验
  • mac Python多版本第三方库的安装路径
  • 深入剖析 JVM:从组成原理到调优实践
  • pyopenjtalk因cmake版本太高导致pip无法安装
  • PHP泛型与集合的未来:从动态类型到强类型的演进
  • MFC中CMap类的用法和原理
  • 【机器人】复现 GraspNet 端到端抓取点估计 | PyTorch2.3 | CUDA12.1
  • c++的特性——多态
  • 服务热升级的方法
  • C++ 中的 decltype:从表达式中推断类型(二十八)
  • RK3588使用笔记:纯linux系统下基础功能配置(不定期更新)
  • MySQL内存管理机制详解
  • 【差分隐私相关概念】数据立方体(Data Cube)
  • C#里使用libxl的对齐/边框/颜色
  • 【极速版 -- 大模型入门到进阶】Transformer: Attention Is All You Need -- 第一弹
  • 基于python大数据的旅游可视化及推荐系统
  • JavaScript中var、let和const的区别
  • 深入理解分布式事务Saga,从入门到面试热点分析详解
  • 05-021-自考数据结构(20331)- 动态查找-例题分析
  • [首发]烽火HG680-KD-海思MV320芯片-2+8G-安卓9.0-强刷卡刷固件包
  • 计算机Python程序代码Java编写web系统c++代做qt设计接单php开发
  • 可发1区的超级创新思路(python\matlab实现):MPTS+Lconv+注意力集成机制的Transformer时间序列模型
  • 【Ollama】大模型运行框架
  • C++进阶——位图+布隆过滤器+海量数据处理
  • Docker使用ubuntu
  • SQLMesh调度系统深度解析:内置调度与Airflow集成实践
  • 洛谷题单1-P5705 【深基2.例7】数字反转-python-流程图重构
  • 【附JS、Python、C++题解】Leetcode面试150题(11)H指数
  • DeepSeek分析仿写选题应该怎么做?
  • Hyperlane框架临时上下文数据管理:提升Web开发效率的利器