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

news2024/11/14 12:10:02

文章目录

  • 一、前言
    • 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,文本框为 txtBox11
            i = !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.coloradmin.cn/o/1814900.html

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

相关文章

Linux下生成包含bash命令的文件名的文件

关于如何绕过Linux限制的其他方式请查看: https://book.hacktricks.xyz/linux-hardening/bypass-bash-restrictions 我只是为了生成/创建包含bash命令的文件名而不是详细介绍Linux系统的文件命名规范,所以只需要考虑Linux系统文件命名的部分要求&#xf…

上海媒体宣传:上海展览展会媒体邀约宣传怎么做?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 作为首屈一指的城市,上海成为国内国际活动会议的首选地,而且每年官方举办的活动会议也是多不胜数,在上海举办活动,不仅可以提高品牌的知名…

RAG 进阶 LlamaIndex多文档

前言 我们一起来学习LlamaIndex功能更完善的多文档RAG,大家可以参照官方文档来对比学习。 Advanced RAG - LlamaIndex Multi-Doc Agent 单个文档RAG Agent流程 我们结合上图来理解一下文档的处理流程。Document就是文档,它会被解析成多个数据节点(Node),类似RAG …

在矩池云使用GLM-4的详细指南(无感连GitHubHuggingFace)

GLM-4-9B 是智谱 AI 推出的最新一代预训练模型 GLM-4 系列中的开源版本,在多项测试中表现出超越已有同等规模开源模型的性能,它能兼顾多轮对话、网页浏览、代码执行、多语言、长文本推理等多种功能,性能更加强大。其多模态语言模型GLM-4V-9B在…

字符串介绍

String package com.ithema; import java.util.Random; public class StringDemo01 {public static void main(String[] args) {//1.使用直接赋值的方式获取一个字符串对象String s1"abc";System.out.println(s1);//2.使用new的方式来获取一个字符串对象//空参构造:可…

178.二叉树:最大二叉树(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…

Spring AI 大模型返回内容格式化源码分析及简单使用

为什么需要格式化输出 对于依赖可靠解析输出值的下游应用程序来说,生成结构化输出是LLMs非常重要的能力。开发人员希望快速将 AI 模型的结果转换为数据类型,例如 JSON、XML 或 Java 类,这些数据类型可以传递给其他应用程序函数和方法。 特别…

【数据分享】中国价格统计年鉴(2013-2022)

大家好!今天我要向大家介绍一份重要的中国价格统计数据资源——《中国价格统计年鉴》。这份年鉴涵盖了从2013年到2022年中国价格统计全面数据,并提供限时免费下载。(无需分享朋友圈即可获取) 数据介绍 在过去的十年里&#xff0…

解决While loop问题 - Python

当我们在使用 while 循环时,需要确保循环的终止条件最终会被满足,否则循环将会无限执行下去。通常情况下,我们可以在循环内部修改循环控制变量,使得终止条件得以满足。 1、问题背景 一位开发者在使用 Python 开发一个基于文本的游…

NI USB-6009 DAQ采集卡拆解

所需设备: 1、NI USB-6009采集卡; 2、逻辑分析仪; NI USB-6009采集卡全貌: 性能参数: 内部照片: ADC芯片指标: 接线图: 差分模式采样: 采集过程中的SPI总线数据监控&a…

Laravel 6 - 第十九章 模型文件

​ 文章目录 Laravel 6 - 第一章 简介 Laravel 6 - 第二章 项目搭建 Laravel 6 - 第三章 文件夹结构 Laravel 6 - 第四章 生命周期 Laravel 6 - 第五章 控制反转和依赖注入 Laravel 6 - 第六章 服务容器 Laravel 6 - 第七章 服务提供者 Laravel 6 - 第八章 门面 Laravel 6 - …

不谈AI能替代什么,就聊能帮我们干活的AI客服机器人!

最近在直播群里有老板在找客服外包,因为客服压力大,接不过来了,想找找外包支援一下。据了解电商客服除了压力大,还会遇到过量的重复劳动,比如我们问一个产品,同一天可能就有几百上千客户问同样的问题&#…

如何把视频的声音转换成音频?干货分享

在数字时代,我们常常需要处理视频文件,而有时候我们只对视频中的音频部分感兴趣。无论是提取影片中的音乐、制作声音效果,还是其他音频处理需求,将视频的声音转换成音频是一个常见而有用的技能。如何把视频的声音转换成音频&#…

css实现优惠券样式

实现优惠券效果: 实现思路: 需要三个盒子元素,使用 css 剪裁,利用 ellipse 属性,将两个盒子分别裁剪成两个半圆,位置固定在另一个盒子元素左右两边适当位置上。为另一个盒子设置想要的样式,圆角…

Tailwind CSS 实战指南:快速构建响应式网页设计

title: Tailwind CSS 实战指南:快速构建响应式网页设计 date: 2024/6/12 updated: 2024/6/12 author: cmdragon excerpt: 这篇文章介绍了Tailwind CSS框架的特点与优势,包括其作为实用性的CSS框架如何通过预设的样式类实现快速布局和设计,…

jeecgboot右上角用户重置密码权限按钮配置不生效问题解决

选了菜单权限用户重置密码权限按钮还是不生效,使用这个缓存读取的是下述redis文件中,用户退出了账户,重新登陆也只会刷新token但是并不会刷新这这个配置,所以需要手动清除redis缓存。 这个问题我也是看了很久才发现,如…

新能源车用驱动器 电机电驱

硕博电子的电机电驱是以一体化动力总成为设计理念,整合电控、电机核心模块,推出的电机电控一体化动力总成。电机电控动力总成采用矢量控制算法和CAN总线通信技术,体积小、效率高、免维护、电磁兼容性强、方便调试,提高了系统的可靠…

【源码】16国语言交易所源码/币币交易+期权交易+秒合约交易+永续合约+交割合约+新币申购+投资理财/手机端uniapp纯源码+PC纯源码+后端PHP

测试环境:Linux系统CentOS7.6、宝塔面板、Nginx、PHP7.3、MySQL5.6,根目录public,伪静态laravel5,开启ssl证书 语言:16种,看图 这套带前端uniapp纯源码,手机端和pc端都有纯源码,后…

指定cuda版本的torch包安装

文章目录 1.查看自己电脑的cuda版本2.确定安装torch的conda指令2.1进入网站[cuda对应的torch版本](https://pytorch.org/get-started/previous-versions/) 3.检验torch的cuda版本是否可用 1.查看自己电脑的cuda版本 winr输入cmd回车进行电脑终端界面 输入nvidia-smi指令 nvid…

【CT】LeetCode手撕—53. 最大子数组和

目录 题目1-思路2- 实现⭐53. 最大子数组和——题解思路 3- ACM 实现 题目 原题连接:53. 最大子数组和 1-思路 动规五部曲 1. 定义 dp 数组 dp[i] 含义为:下标为 i 的数组的最大子数组和 2. 递推公式 因为所求的是最大子数组的和,即当前 n…