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

使用C#快速搭建一个在windows运行的exe应用

文章目录

  • 一、前言
    • 1.1 编写语言需要工具
    • 1.2 选择自己需要的组件进行安装
  • 二、新建项目
    • 1.1 新建一个 .NET4.x 的项目
    • 1.2 添加一个小案例
    • 1.3 对界面进行美化
      • 1.3.1、配置Form属性
      • 1.3.2、配置Button按钮
    • 1.4 查看组将的相关代码
  • 三、后记

一、前言

这是一个比较旧的内容,但是一直都没有空写,今天花点时间,把我掌握的C# 分享给初学的人或者感兴趣的人,希望能对你有一定帮助

1.1 编写语言需要工具

可以前往官网进行下载

https://visualstudio.microsoft.com/zh-hans/downloads/

请添加图片描述

可以直接下载社区版本就够用了

目前最新的是 Visual Studio 2022 版本,从官网下载也是最新版本,但是对于软件开发来说,最新不一定就是最好的,合适项目的反而是最好的

  • 1、一般来说,最新版本就够用了,但是如果想要用一下 Winform的组件,比如 DevExpress 目前只是支持到 2019年版本,如果下载最新了,可能某些功能就用不了了

  • 2、一般我们编写winform 旧的选择的是 .net framework 4.5,但是 NET4.5 是不支持跨平台的。后续 NET5.0后就支持跨平台的。因为我开发的金蝶云星空相关的产品,所以一直还是沿用 .NET4.5

1.2 选择自己需要的组件进行安装

请添加图片描述

我们一般选择 .NET 桌面开发即可

我们选择的语言,是C#。众所周知,C#是一个面向对象的语言

面向对象的概念,就是万物皆是对象,最近也出现了不少热门语言,比如GO面向过程在多线程大放异彩、python在处理算法也是独树一帜。但是作为跟java特别相似的语言C#,他也有他独特之处,并不能说哪个语言绝对的好,哪个语言绝对的差

二、新建项目

搜索模板 -> 选择 Windows 窗体应用

请添加图片描述

有人搜索,发现有很多选项,这个并不是冗余,每一项都有对应的功能

可以发现第一项 Windwos窗体应用,默认的框架为 .NET6.0 和 .NET7.0

可以发现第二项 Windows窗体应用(.NET Framework) 默认框架为 .NET Framework 4.x

从这里我们就可以看出了,不用选项,其实框架对应的版本都是不同

  • 要根据自己项目选择合适的框架。如果是老项目,建议还是用 .NET4.X,如果是全新项目就没有这个要求了

1.1 新建一个 .NET4.x 的项目

请添加图片描述
请添加图片描述
这个界面,我们常用的有

  • 工具箱、设计界面、资源管理器 和 属性这一栏

在这里插入图片描述

点击启动,即可运行该界面

请添加图片描述
在这里插入图片描述

从这里起,你就自己搭建了一个属于你自己的 .exe 的页面了

在资源管理器,右键

在这里插入图片描述
在资源管理器中打开文件夹

…/WindowsFormsApp1\WindowsFormsApp1\bin\Debug

在这里插入图片描述

把这个文件夹的内容拷贝到任何windows的操作系统的机器中,点击 WindowsFormsApp1.exe 即可运行

1.2 添加一个小案例

用一个小案例来学习是非常方便的,我们就列举一个按钮

功能为;按钮点击下去,显示1,再重复点击,显示0 以此反复

拉取一个按钮

在这里插入图片描述

再拉取一个 输入框

在这里插入图片描述

注意:

按钮、输入框、甚至整个Form1,都是有他自己对应的属性C#就是面向对象,也可以理解为 按钮、输入框、Form都是这个项目为我们创建好的一个个对象,我们直接拿来用就行了

查看代码,直接在页面右键即可

在这里插入图片描述

双击按钮,即可添加按钮的点击程序

namespace WindowsFormsApp1  //命名空间,可以理解是一个类的分类
{public partial class Form1 : Form  //类cs,Form1为类的名称  Form为父类,为继承关系{bool i = false;public Form1(){InitializeComponent();  //初始化组件,可以理解为,界面的内容样式,都是考这个方法渲染出来的}private void button1_Click(object sender, EventArgs e){//在没有手动修改之前,按钮的名称为 button1,文本框为 txtBox11i = !i;textBox1.Text = i?"0":"1";}}
}

根据以上代码添加,然后运行项目,就可以实现 按钮点击下去,显示1,再重复点击,显示0 以此反复,

感兴趣的人可以试一试吧

1.3 对界面进行美化

1.3.1、配置Form属性

在这里插入图片描述

在界面空白处进行点击

在右下角配置对应的属性

我们就简单配置了两个关于Form的属性,StartPosition: CenterScreen, Text:测试项目

1.3.2、配置Button按钮

选择按钮
在这里插入图片描述

在右下角配置对应的属性

属性其实是有分两种的,一种是普通的属性,比如名称、外观等。另一种是绑定属性,比如点击事件、右击事件啊

在这里插入图片描述

选择事件,可以看得到我们上面案例创建出来的点击事件
在这里插入图片描述

选择属性,我们可以对按钮进行命名等操作

DataBinding Name:button1 是指跟后端的绑定代码

在这里插入图片描述
该标识是用于代码的识别

还可以修改按钮的描述、颜色、大小等

1.4 查看组将的相关代码

请添加图片描述

如图所示,在资源管理器,选择Form1.cs - Form1.Designer 可以查看对应按钮的所有的配置

是不是跟面向对象有关系呢?这个大家自己去思考一下

三、后记

从以上的讲述,对创建一个exe的程序,是不是更加清楚呢。

虽然案例讲得很简单,但是再复杂的代码,都是从简单演变过来的,就像建房子一样,地基打得好,才可以创建更多高楼大厦。

后续我也会从该案例开始,讲一下搭建C#相对复杂的案例,以及金蝶云星空相关的内容,各位感兴趣的话,可以持续关注

相关文章:

  • python format详解
  • CI/CD实战面试宝典:从构建到高可用性的全面解析
  • UE5.2打包安卓
  • k8s可练习实验分享
  • 1毛钱1百万token,写2遍红楼梦!国产大模型下一步还想卷什么?
  • 【数据库设计】宠物商店管理系统
  • Python第二语言(十四、高阶基础)
  • Internet Download Manager(IDM6.41)安装教程+软件安装包下载
  • 【机器学习】机器学习赋能医疗健康:从诊断到治疗的智能化革命
  • MySql几十万条数据,同时新增或者修改
  • 制作ubuntu18.04 cuda10.2+ROS1的 docker镜像
  • Python自动化
  • 机器学习--线性模型和非线性模型的区别?哪些模型是线性模型,哪些模型是非线性模型?
  • 攻防演练之-成功的钓鱼邮件溯源
  • 自然语言处理领域的重大挑战:解码器 Transformer 的局限性
  • Google 是如何开发 Web 框架的
  • Akka系列(七):Actor持久化之Akka persistence
  • Apache Zeppelin在Apache Trafodion上的可视化
  • centos安装java运行环境jdk+tomcat
  • CSS实用技巧
  • echarts的各种常用效果展示
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • log4j2输出到kafka
  • node-glob通配符
  • Node项目之评分系统(二)- 数据库设计
  • npx命令介绍
  • October CMS - 快速入门 9 Images And Galleries
  • React as a UI Runtime(五、列表)
  • Redis学习笔记 - pipline(流水线、管道)
  • springboot_database项目介绍
  • 阿里研究院入选中国企业智库系统影响力榜
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 微信小程序:实现悬浮返回和分享按钮
  • 微信小程序开发问题汇总
  • 学习Vue.js的五个小例子
  • 怎样选择前端框架
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • ​​​【收录 Hello 算法】9.4 小结
  • #include到底该写在哪
  • #预处理和函数的对比以及条件编译
  • $.ajax()方法详解
  • (6)添加vue-cookie
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (生成器)yield与(迭代器)generator
  • (四)React组件、useState、组件样式
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转)fock函数详解
  • (转)程序员疫苗:代码注入
  • (转载)虚函数剖析
  • .net core 6 redis操作类
  • .net mvc 获取url中controller和action