使用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#相对复杂的案例,以及金蝶云星空相关的内容,各位感兴趣的话,可以持续关注

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

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

相关文章

【android】json

设置第potition个数据项的view的属性 成功显示数据项,熟悉recycleview三个方法 新建页面,定义适配器,指定使用MyViewHolder类对象保存每个数据胡view组件 padding-内部边距 bold-加粗 新建类,描述新闻内容 定义组件 public i…

模拟信号转RS-485/232,数据采集A/D转换模块 YL21

特点: ● 模拟信号采集,隔离转换 RS-485/232输出 ● 采用12位AD转换器,测量精度优于0.1% ● 通过RS-485/232接口可以程控校准模块精度 ● 信号输入 / 输出之间隔离耐压3000VDC ● 宽电源供电范围:8 ~ 32VDC ● 可靠性高&…

网络安全 - ARP 欺骗原理+实验

APR 欺骗 什么是 APR 为什么要用 APR A P R \color{cyan}{APR} APR(Address Resolution Protocol)即地址解析协议,负责将某个 IP 地址解析成对应的 MAC 地址。 在网络通信过程中会使用到这两种地址,逻辑 IP 地址和物理 MAC 地址&…

如何保证数据库和缓存的一致性

背景:为了提高查询效率,一般会用redis作为缓存。客户端查询数据时,如果能直接命中缓存,就不用再去查数据库,从而减轻数据库的压力,而且redis是基于内存的数据库,读取速度比数据库要快很多。 更新…

android studio过滤日志

荣耀手机的日志有很多乱七八糟的输出 在logcat设置过滤 filter name:过滤名称随意 log tag不知道是什么 log message设置过滤的内容或者设置显示的内容 需要过滤的内容: ^(?!.*(gralloc4|InputMethodManager|tagSocket|dataspace)).*$以|分割要过滤的内容 要显…

计算机网络(2) 网络层:IP服务模型

一.Internet Protocol在TCP/IP四层模型中的作用 第三层网络层负责数据包从哪里来到哪里去的问题。传输层的数据段提交给网络层后,网络层负责添加IP段,包含数据包源地址与目的地址。将添加IP段的数据包交由数据链路层添加链路头形成最终在各节点传输中所需…

Maven:一个下载jar依赖失败的问题解决方案

内部的一个jar包已经上传到了私服上,在私服管理端也能看到该jar包的完整信息,但是springboot项目引入该jar包发现死活下载不下来,报错如图: 从该错误信息中可以看到,找不到服务名是xxl-job这个的,我们要找的…

如何将 API 管理从 Postman 转移到 Apifox

上一篇推文讲到用 Swagger 管理的 API 怎么迁移到 Apifox,有许多同学反馈说能不能介绍一下 Postman 的迁移以及迁移过程中需要注意的事项。那么今天,它来了! 从 Postman 迁移到 Apifox 的方法有两种: 导出 Postman 集合 &#x…

详细介绍如何解决vcomp140.dll丢失的步骤,分享几种vcomp140.dll修复方法

当这个vcomp140.dll文件丢失时,可能会导致相关程序运行出错甚至无法运行。很多用户可能会遇到vcomp140.dll丢失的问题,但是这并不是不可解决的困难。接下来就和大家分享几种解决vcomp140.dll丢失的方法,给大家详细的关于如何解决vcomp140.dll…

MySQL-连接查询

049-内连接之等值连接 案例:查询每个员工所在的部门名称,要求显示员工名、部门名。 select e.ename, d.dname from emp e inner join dept d on e.deptnod.deptno;注意:inner可以省略 select e.ename, d.dname from emp e join dept d on…

你的医书是假的!批评《DDD诊所——聚合过大综合症》(合集)

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 (《你的医书是假的!》原文写于2023年8月,以系列文章方式发表,现合并成一篇文章) 一、说在前面 这两天在“ Thoughtworks洞见…

mask2former利用不确定性采样点选择提高模型性能

在机器学习和深度学习的训练过程中,不确定性高的点通常代表模型在这些点上的预测不够可靠或有较高的误差。因此,关注这些不确定性高的点,通过计算这些点的损失并进行梯度更新,可以有效地提高模型的整体性能。确定性高的点预测结果…

【python】tkinter GUI开发: 多行文本Text,单选框Radiobutton,复选框Checkbutton,画布canvas的应用实战详解

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

Vue3使用datav3报错问题解决

报错:Failed to resolve entry for package "dataview/datav-vue3". The package may have incorrect main/module/exports specified in its package.json. 修改package.json 修改为 "module": "./es/index.mjs",

细说MCU串口函数及使用printf函数实现串口发送数据的方法

目录 1、硬件及工程 2、串口相关的库函数 (1)串口中断服务函数: (2)串口接收回调函数: (3)串口接收中断配置函数: (4)非中断发送&#xff…

飞速(FS)InfiniBand解决方案构建HPC网络

面对HPC领域的不断发展,未来HPC业务核心在于HPC网络和基础设施。随着高性能计算应用的复杂性和数据量的增长,对弹性、可扩展和高效网络的需求变得日益迫切。HPC网络架构作为HPC系统运行的基础,在数据处理、管理和大规模存储方面至关重要。本文…

什么是 URL 过滤?是如何保障浏览体验的?

互联网是一个无边无际的空间,几乎包含了你能想象到的一切。不幸的是,这意味着也存在着从不合适到非常危险的网站。这就是 URL 过滤可以发挥作用的地方。 一、URL 过滤的含义 我们希望您已经熟悉 URL(统一资源定位器),…

Linux命令详解(2)

文本处理是Linux命令行的重要应用之一。通过一系列强大的命令,用户可以轻松地对文本文件进行编辑、查询和转换。 cat: 这个命令用于查看文件内容。它可以一次性显示整个文件,或者分页显示。此外,cat 还可以用于合并多个文件的内容…

使用winscp 通过中转机器(跳板机、堡垒机)密钥远程连接服务器,保姆级别教程

1.winscp下载地址 winscp下载 2.安装自己选择位置 3.连接服务器 到这里,基本就是没有壁垒机的就可直接连接,传递文件 4.配置中转服务器(壁垒机、跳板机) 选择高级选项 配置utf-8的编码格式 配置中转服务器(壁垒机、跳板机) 设置中专机的密码或者私钥 配置私钥

Day 16:3040. 相同分数的最大操作数目II

Leetcode 相同分数的最大操作数目II 给你一个整数数组 nums ,如果 nums 至少 包含 2 个元素,你可以执行以下操作中的 任意 一个: 选择 nums 中最前面两个元素并且删除它们。选择 nums 中最后两个元素并且删除它们。选择 nums 中第一个和最后一…