对于C#,笔者最早接触的是ASP.NET里的开发,后面对Winform程序也有一定的开发,但是真正理解和重新编码是这些年的事,在我的C#标签里有一些例子,记录了winform程序开发的一些功能。此文只是记录基于.net framework的用C#开发Winform程序的一个过程。

  1、 安装Visual Studio 2022;

  首先先安装好VS 2022 :https://www.cnblogs.com/lzhdim/p/18100292

  2、 进行编码;

  1) 项目的配置;

  这里参考Dll类库那个,对Exe项目进行设置:

https://www.cnblogs.com/lzhdim/p/18141327

  2) 添加类库;

  这里参考类库那个,添加引用相关的类库:

https://www.cnblogs.com/lzhdim/p/18148890

此例子里的类库为笔者收集整理的,具体应用见开源研究系列博文。

  3) UI编码;

  这里提供例子,添加窗体、使用的类库。其它的参考笔者的开源研究系列的博文里的例子。

  (1)     应用入口;

  应用入口,需要做的是处理传入参数,处理应用重复打开的消息,以及处理应用打开时的操作。

  

  (2)     统一管理变量;

  这里用单例模式,将应用使用到的对象进行统一管理。

  https://www.cnblogs.com/lzhdim/p/17638267.html

  

  (3)     UI界面的设计;

  对于UI界面,笔者这里使用的是无边框窗体的设计,使用到的类库以及使用方法参考其它博文例子。

  https://www.cnblogs.com/lzhdim/p/17576147.html

  https://www.cnblogs.com/lzhdim/p/17638276.html

https://www.cnblogs.com/lzhdim/p/18114056

对于UI界面,建议读者参考Windows的设计,因为每个操作系统的UI都有一定的区别,或者找美工设计一个界面,然后使用这个界面即可。这里这个是笔者的一个例子:

  点击属性,打开资源窗体,选择“图标”,点添加资源,选择图标;

  

选择文件,添加资源,添加文本资源;后续根据自己的需要添加项目需要的资源;

这里还有一个播放音频文件的例子:

https://www.cnblogs.com/lzhdim/p/18077721

这里更改项目安全性:

  点击启动,然后勾选掉。

  

这里更改为Administrator:

这里是无边框窗体的使用方法:

  

这里提供了一个模板,已经包含了该应用基本的功能。

  

至于窗体应用请参考笔者其它的例子。这里这个模板能够提供基本的功能,请读者在此基础上进行开发即可。

  (4)     界面设计的方法;

  新建一个窗体;

  

  切换到工具箱界面;

  

  拖放控件到窗体;

  在工具箱上点击鼠标左键,将控件拖放到窗体,并设置控件属性。

  

  添加控件的消息处理函数;

  切换到属性窗体,点击顶部的事件按钮,切换到事件列表。找到需要的事件,双击打开代码窗体,在窗体里添加事件处理的代码。

  

  

  3、 程序界面;

  这里这个是此应用的一个截图:

  

  

  4、 源码下载;

  提供此例子的源码下载:https://download.csdn.net/download/lzhdim/89194429

  

  上面介绍了笔者用C#开发Winform程序的过程的一个例子,希望对刚接触C#开发的读者以帮助。对于.net framework的例子就介绍到这,下次介绍其它例子。

C#的基于.net framework的Winform编程 - 编程手把手系列文章的更多相关文章

  1. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第六章:管理产品图片——多对多关系(上篇)

    在这章中,我们将学习如何创建一个管理图片的新实体,如何使用HTML表单上传图片文件,并使用多对多关系将它们和产品关联起来,如何将图片存储在文件系统中.在这章中,我们还会学习更加复杂的异常处理,如何向模 ...

  2. 基于DDD的现代ASP.NET开发框架--ABP系列文章总目录

    ABP相关岗位招聘:给热爱.NET新技术和ABP框架的朋友带来一个高薪的工作机会 ABP交流会录像视频:ABP架构设计交流群-7月18日上海线下交流会的内容分享(有高清录像视频的链接) 代码自动生成: ...

  3. 基于DDD的现代ASP.NET开发框架--ABP系列文章总目录(转)

    出处:http://www.cnblogs.com/mienreal/p/4528470.html ABP相关岗位招聘:给热爱.NET新技术和ABP框架的朋友带来一个高薪的工作机会 ABP交流会录像视 ...

  4. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第四章:更高级的数据管理

    在这一章我们将学习如何正确地删除分类信息,如何向数据库填充种子数据,如何使用Code First Migrations基于代码更改来更新数据库,然后学习如何执行带有自定义错误消息的验证. 注意:如果你 ...

  5. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

  6. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第一章:创建基本的MVC Web站点

    在这一章中,我们将学习如何使用基架快速搭建和运行一个简单的Microsoft ASP.NET MVC Web站点.在我们马上投入学习和编码之前,我们首先了解一些有关ASP.NET MVC和Entity ...

  7. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之目录导航

    ASP.NET MVC with Entity Framework and CSS是2016年出版的一本比较新的.关于ASP.NET MVC.EF以及CSS技术的图书,我将尝试着翻译本书以供日后查阅. ...

  8. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第三章:搜索、高级过滤和视图模型

    在这一章中,我们首先添加一个搜索产品的模块以增强站点的功能,然后使用视图模型而不是ViewBag向视图传递复杂数据. 注意:如果你想按照本章的代码编写示例,你必须完成第二章或者直接从www.apres ...

  9. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第五章:排序、分页和路由

    本章的重点是对产品信息增加排序和分页的功能,以及使用ASP.NET Routing特性添加更加友好的URL支持. 注意:如果你想按照本章的代码编写示例,你必须完成第四章或者直接从www.apress. ...

  10. Ligg.EasyWinApp-100-Ligg.EasyWinForm:一款Winform应用编程框架和UI库介绍

        本项目是一个Winform应用编程框架和UI库.通过这个该框架,不需任何代码,通过XML配置文件,搭建任意复杂的Windows应用界面,以类似Execel公式的方式实现基本的过程控制(赋值.条 ...

随机推荐

  1. C# OpenCv DNN 人脸检测

    using OpenCvSharp; using OpenCvSharp.Dnn; using System; using System.Collections.Generic; using Syst ...

  2. JSON转换为CSV

    <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> ...

  3. verilog之readmemb

    verilog之readmemb 1.基本作用 用于读取存储器的值的系统函数.这里首先要知道什么是存储器.在verilog中,有一些比较大的数据是需要存储的,一般需要使用存储器,语法结构类似二维数组. ...

  4. PS-AXI-PL流水灯设计(2)

    PS-AXI-PL流水灯设计(2) 1.实验原理 承接上一次的实验,这里对AXI的总线结构做出分析,将AXI的理论具体对应到设计上去.为后面自己设计AXI的发送和接受器做好准备. 2.实验操作 (1) ...

  5. Scala 函数闭包和柯里化

    1 package com.atguigu.function 2 3 object HighFunction { 4 def main(args: Array[String]): Unit = { 5 ...

  6. Codeforces Round #726 (Div. 2)

    CF1537A Arithmetic Array 洛谷传送门 CF1537A 分析 用这 \(n\) 个数的总和 \(sum\) 判断: 如果 \(sum<n\) 直接用 \(n-sum+1\) ...

  7. Docker学习路线1:介绍

    Docker是什么? Docker是一个开源平台,通过将应用程序隔离到轻量级.可移植的容器中,自动化应用程序的部署.扩展和管理.容器是独立的可执行单元,封装了运行应用程序所需的所有必要依赖项.库和配置 ...

  8. 生成 MFC ActiveX (OCX)时,报错:MSB801:未能注册输出

    我们在生成 ocx 控件时,报错:MSB801:未能注册输出,如下图: 解决方法: 1.打开 项目属性 -> 链接器 -> 常规  :  逐用户重定向 改为  是 2. 重新生成 如果此时 ...

  9. Python设计模式----3.单例模式

    单例模式:主要目的是确保某一个类只有一个实例存在 代码: class A(): def __new__(self, *args, **kwargs): if not hasattr(self, 'na ...

  10. HDC2021技术分论坛:鸿蒙智联设备开发,这五大法宝你应该拥有

    作者:zhaowenguang,dinglu, 华为高级工程师 Huawei LiteOS是轻量级的开源物联网操作系统.智能硬件使能平台,可广泛应用于智能家居.穿戴式.车联网.制造业等领域,使物联网终 ...