创建一个C# WinForm应用程序的步骤

  1. 创建项目
  2. 界面设计
  3. 设置属性
  4. 编写代码
  5. 保存项目
  6. 运行程序

1. 新建项目

在这里插入图片描述
默认情况下,项目名称和解决方案名称是保持一致的,用户也可以修改成不一样的。一个解决方案下面是可以包含多个项目的,比如和应用程序相关的数据结构项目、一些资源等。

点击 “确定”,新建项目。
在这里插入图片描述

新建的项目包含

  • Properities:项目属性

  • 引用:项目需要用到的一些 dll文件等。

  • App.Config:应用程序的配置文件,与数据库交互可以在这里配置连接字符串,默认有以下内容:
    在这里插入图片描述

  • Form1.cs:默认生成的窗体文件,包含它的设计页面 Form1.Designer.cs 和代码页面
    在这里插入图片描述
    在这里插入图片描述

  • Program.cs:应用程序的主入口点
    在这里插入图片描述

2. 界面设计 —— 拖控件,布局

菜单栏 “视图” → “工具箱”
快捷键:Ctrl+Alt+X

在这里插入图片描述

往窗体中拖三个控件:Label,TextBox,Button,如下:

在这里插入图片描述

3. 设置窗体/控件的属性

右键 窗体/控件 → 属性 → 弹出属性界面
在这里插入图片描述
Text属性的值:窗体/控件上显示的文字(可以理解为QQ昵称)
(Name) 属性的值:代码中标识 窗体/控件时用到的名字(可以理解为QQ号)
MaximizeBox属性的值:True/False,是否可以最大化窗体
ShowIcon属性的值:True/False,是否显示窗体左上角的图标
ForeColor属性的值:前景色,页面上文字的颜色等
BackColor属性的值:背景色

将窗体的Text属性设置为:用户页面
将窗体的(Name) 属性设置为:FrmUser
将Label控件的Text属性设置为:用户名:
将TextBox控件的(Name) 属性设置为:txtUserName
将Button控件的(Name) 属性设置为:btnConfirm
将Button控件的Text属性设置为:提交
在这里插入图片描述

一个个窗体在代码中实际上就是一个个类,partial类和设计页面的类编译过后会生成一个类
在这里插入图片描述

4. 编写代码

要实现的功能:点击“提交”按钮,系统会把输入的用户名通过 MessageBox 显示出来

右键 “提交” 按钮,打开属性,把“Click”属性的值设为 btnConfirm_Click,并按回车,VS会自动跳转到btnConfirm_Click 函数的位置

在这里插入图片描述

编辑 btnConfirm_Click 函数的内容:将textBox中的文字通过 MessageBox 显示出来

在这里插入图片描述

5. 保存项目

在这里插入图片描述

6. 运行程序

第一次运行,点击 菜单“生成” → “生成解决方案”
在这里插入图片描述
点击 “启动”
在这里插入图片描述
会启动窗体 “FrmUser”,如果需要启动其他窗口,也可以写在 Program.cs 的这个地方
在这里插入图片描述

结果:

在这里插入图片描述

参考:2023年C#之WinForm零基础教程50讲

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PhoneStatusBarView有关拖动的堆栈信息

开机: 拖动时的堆栈信息:

MoonBit 最新动态:MoonBit 引入实验性的测试覆盖率统计工具

MoonBit更新 支持 array.iter intrinsic 并且已经对标准库中的函数进行标注&#xff0c;从而可以在特定情况下将循环进行内联&#xff0c;以提升运行效率 /// intrinsic %array.iter pub fn iter[T](self : Array[T], f : (T) -> Unit) -> Unit {for i 0; i < self…

如何实现小程序滑动删除组件+全选批量删除组件

如何实现小程序滑动删除组件全选批量删除组件 一、简介 如何实现小程序滑动删除组件全选批量删除组件 采用 uni-app 实现&#xff0c;可以适用微信小程序、其他各种小程序以及 APP、Web等多个平台 具体实现步骤如下&#xff1a; 下载开发者工具 HbuilderX进入 【Dcloud 插…

代码随想录训练营day30

第七章 回溯算法part06 1.LeetCode.重新安排行程 先跳过 1.1题目链接&#xff1a; 文章讲解&#xff1a;代码随想录 1.2思路&#xff1a; 1.3附加代码如下所示&#xff1a; 2.LeetCode. N皇后 2.1题目链接&#xff1a; 文章讲解&#xff1a;代码随想录 视频讲解&#…

flutter 获取验证码倒计时组件封装

send_sms_btn.dart import dart:async;import package:flutter/material.dart; import package:get/get.dart;// 发送验证码 按钮 class SendSmsBtn extends StatefulWidget {final Future<bool> Function()? onTap;const SendSmsBtn({super.key,this.onTap,});overrid…

Mysql底层原理六:InnoDB 数据页结构

1.行格式 1.1 Compact行格式 1.1.1 示意图 1.1.2 准备一下 1&#xff09;建表 mysql> CREATE TABLE record_format_demo (-> c1 VARCHAR(10),-> c2 VARCHAR(10) NOT NULL,-> c3 CHAR(10),-> c4 VARCHAR(10)-> ) CHARSETascii ROW_FORMATCOM…

P1123 取数游戏(dfs算法)

题目描述 一个 NM 的由非负整数构成的数字矩阵&#xff0c;你需要在其中取出若干个数字&#xff0c;使得取出的任意两个数字不相邻&#xff08;若一个数字在另外一个数字相邻 8个格子中的一个即认为这两个数字相邻&#xff09;&#xff0c;求取出数字和最大是多少。 输入格式 第…

ElementUI使用问题记录:设置路由+iconfont图标+自定义表单验证

一、关于导航怎么设置路由 1、在el-menu这个标签的属性中添加 router ,官方文档的解释是&#xff1a;启用vue-router 这种模式 2、在el-menu-item标签中的index属性直接书写路由&#xff0c;就可以实现正常vue-router了 3、在el-menu-item标签中书写路由属性&#xff1a;:route…

新一代最强开源UI自动化测试神器Playwright(Java版)(对话框处理)

&#x1f3ad;Playwright让网页对话框&#x1f310;&#x1f4ac;处理变得更加快捷&#xff01;网页对话框是在网页上出现的常见弹窗&#xff0c;包括Alert、Confirm和Prompt等。这些对话框通常需要用户输入信息或进行某些选择&#xff0c;但是在自动化测试中处理它们可能会很棘…

xhci 数据结构

xhci 数据结构 xhci 数据结构主要在手册上有详细的定义&#xff0c;本文根据手册进行归纳总结&#xff1a; 中断关注的包括&#xff1a; device contexttrb ringtrb device context设备上下文 设备上下文数据结构由xHC管理&#xff0c;用于向系统软件报告设备配置和状态信息。…

用动态IP采集数据总是掉线是为什么?该怎么解决?

动态IP可以说是做爬虫、采集数据、搜集热门商品信息中必备的代理工具&#xff0c;但在爬虫的使用中&#xff0c;总是会遇到动态IP掉线的情况&#xff0c;从而影响使用效率&#xff0c;本文将探讨动态IP代理掉线的几种常见原因&#xff0c;并提供解决方法&#xff0c;以帮助大家…

Kubernetes有状态任务

有状态任务是指执行期间需要维护一定状态或数据的任务或工作。这些任务通常需要记录并维护数据、状态、上下文或进度信息&#xff0c;并且这些信息在任务执行期间保持持久。有状态任务的解决目标是确保任务在不同的环境、节点或时间点之间维持一致的状态和标识。这种任务通常需…