Windows Forms 1.x 批判

基于 C# 和 Windows Forms 的文件加密解密应用程序 这是一个基于 C# 和 Windows Forms 的文件加密解密应用程序,该程序具备文件和文件夹的加密解密功能,同时支持日志记录、日志密码管理以及日志查询功能,增强了数据的安全性和可追溯性。 阅读详情
(1)控件少、难以使用且外观很土。其中最夸张的是 ToolBar 控件:(1)设计者认为你对全部按钮要么都使用图标,要么都使用文本标签,否则就是脑子进水了;(2)如果你尝试在 ToolBar 上放置其他控件(如组合框)的话你是在跟自己过不去;(3)最受不了的是居然要用 if ... else 语句判断是哪个按钮被单击了,My God!难怪网上一直流传 Windows Forms 的控件是高中生写的。
(2)度量单位使用像素,想要做分辨率无关的界面很麻烦。只有在Avalon里微软才开始采用设备无关的坐标(英寸,毫米等)。
(3)对 Win32 的封装过于高层又不完整,导致很多时候不得不手工进行平台调用。在网上能找到的 Windows Forms 控件或者应用程序没有几个不包含类似 [DllImport("User32.dll")] 这样的语句的。
(4)异步调用难以使用:在 .NET Framework 的其他很多需要传入回调委托的地方一般都允许同时传入一个状态值以方便在回调中使用,例如 ThreadPool.QueueUserWorkItem(WaitCallback callBack, object state),而 Control.Invoke 就是要让你受挫,如果你使用 MethodInvoker 委托或者 EventHandler 委托的话要自己定义一个类以包装状态值(因为它们都不接收状态值),否则你要自己新定义一个回调委托。Oh,My,God!要是没有 C# 2.0 匿名方法的话真是不知道会白写多少这种 shit 代码。
(5)列表视图排序:.NET Framework 集合类排序都是在 Sort 方法中传入 IComparer 接口控制排序(例如 ArrayList.Sort(IComparer)),而 ListView 的作者非常别出心裁的要求你将 IComparer 接口赋给 ListViewItemSorter 属性,然后再调用不带任何参数 Sort 方法。不明白这样的不一致有什么特别的好处。
(6)待续......
13、Windows Forms 编程详解 本文详细介绍了Windows Forms编程的基础知识,涵盖Form类的继承层次结构、常用属性、方法和事件,深入解析了窗体代码的生成机制与结构。文章还讲解了如何在代码中设置窗体的起始位置、大小、位置、显示与隐藏、边框样式、窗口状态以及在运行时动态添加控件等操作,帮助开发者全面掌握Windows窗体应用程序的开发技巧。 阅读详情

相关推荐

Windows Forms编程示例集锦

Windows Forms.NET Framework提供的用于构建Windows桌面应用程序的一个类库。它提供了一个丰富的用户界面控件集合,包括按钮、文本框、下拉列表等,允许开发者快速创建功能丰富的交互式桌面应用程序。GDI+是Windows平台上用于图形绘制和图像处理的编程接口,全称为Graphical Device Interface Plus。它提供了一套丰富的API,允许开发者在Windows Forms和其他Windows应用程序中创建复杂的二维图形和图像效果。

weixin_42609225的博客 1797

第一篇文章

大家好,欢迎来到我的中文blog。我的英文blog是http://blogs.wwwcoder.com/yljia/。 简单介绍一下自己:我叫贾迎乐,毕业于北京邮电大学,曾经是微软的软件开发工程师。在第一届微软杯全国大学生 .NET 软件开发大赛中获得一等奖并应邀访问美国微软总部西雅图。在微软辞职后开发了开放源代码 C++ 开发框架 ACF (http://acfproj.sourceforge.

贾迎乐的 blog 1607

GridView与ComboBox集成的C# Windows Forms示例

Windows Forms(WF)是一个用于创建桌面应用程序的图形用户界面库,它提供了快速开发Windows应用程序的途径。在.NET框架中,WF是利用Windows基础控件构建富客户端应用的主要方式。开发者可以利用WF提供的各种组件,比如按钮、文本框等,通过拖放方式快速设计界面,并编写相应的业务逻辑代码。GridView控件是Windows Forms中一个强大的数据显示和管理控件,它提供了一个以网格形式显示数据的平台,能够让用户以类似电子表格的形式查看和编辑数据。

weixin_35414484的博客 960

C++ 枚举类型的思考

C++ 中的枚举类型继承于 C 语言。就像其他从 C 语言继承过来的很多特性一样,C++ 枚举也有缺点,这其中最显著的莫过于作用域问题——在枚举类型中定义的常量,属于定义枚举的作用域,而不属于这个枚举类型。例如下面的示例:enum FileAccess {    Read = 0x1,    Write = 0x2,};FileAccess access = ::Read; // 正确Fi

贾迎乐的 blog 5278

Windows Forms下的Label控件被拖动到窗体之外

实现Winform下拖动控件出窗体是一个具有挑战性的任务,但通过掌握基本的事件处理和坐标操作技术,它是完全可行的。希望本篇文章能为您提供一个清晰的实现思路,让您能够根据具体需求在项目中实现类似功能。print("拥抱新技术才是王道!")

百锦再的博客 2万+

Windows Forms Lifetime 扩展教程

Windows Forms Lifetime 扩展教程 项目概述 本教程基于Alex Oswald在GitHub上的开源项目WindowsFormsLifetime,该库提供了一个方便的方法来利用.NET Generic Host托管Windows Forms应用,通过将Windows Forms的生命周期绑定到宿主,实现了依赖注入、配置和日志记录等现代.NET特性在Windows Forms中的...

gitblog_00089的博客 919

6、使用Windows Forms构建用户界面

本文详细介绍了如何使用Windows Forms构建用户界面,涵盖从基础窗体创建到高级功能如数据绑定和对话框的使用。通过实际案例Acme旅行社的GUI应用,展示了综合运用多种控件和技术来实现功能完善的用户界面的方法。

weixin_29781865的博客 760

Unity打包程序System.Windows.Forms.dll

System.Windows.Forms.dll打包报错出现的问题如何解决1. 重新找到dll文件2.放入unity项目中3.Player Setting 出现的问题 在unity中build项目时,出现报错:The Assembly System.Deployment is referenced by System.Windows.Forms ('Assets/Plugins/System.Windows.Forms.dll'). But the dll is not allowed to be inc

LLLQQQismmmmme的博客 5208

【Unity】使用 System.Windows.Forms 的问题

因为最近开发需要用到使用 Windows 自带的窗口打开、文件选择等功能,然后兜兜转转需要使用System.Windows.Forms 这个库。这个库在 WinForm 里是很常见的,但是要在 Unity 里使用,并打包出来还是有些坑的。

魔术师Dix的博客 7860

Deploying Windows Forms Applications with ClickOnce

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnreal/html/realworld03232004.aspDeploying Windows Forms Applications with ClickOnce  Mauro SantAnnaMicrosoft Regional DirectorDecembe

天道酬勤 1631

C# System.Windows.Forms.DataVisualization Demo案例

一、新建一个 Winfrom 项目 WPF 其实也可以用,写法差不了太多,这里用 Winfrom 作为演示。 引入 System.Windows.Forms.DataVisualization DLL 二、界面和代码 下面是运行后的样子 另外还加了一个定时器 Form1.cs using System; using System.Drawing; using System.Windows.Forms; using System.Windows.Forms.Dat.

熊思雨的博客 8757

Cyotek.Windows.Forms.ImageBox 开源项目教程

Cyotek.Windows.Forms.ImageBox 开源项目教程 项目介绍 Cyotek.Windows.Forms.ImageBox 是一个开源的 .NET 控件,用于在 Windows 窗体应用程序中显示和操作图像。该项目提供了丰富的功能,包括缩放、平移、选择区域等,适用于需要复杂图像处理的桌面应用程序开发。 项目快速启动 安装 首先,通过 NuGet 安装 Cyotek.Window...

gitblog_00476的博客 638

C# 串口助手项目笔记(Windows Forms

本文介绍了一款基于WindowsForms的串口通信工具,采用分层架构设计,包含Model数据模型层、Helper工具层和Form界面层。该工具支持串口参数配置(波特率、校验位等)、文本/十六进制数据收发、定时发送和主题切换等功能。核心模块包括:1)数据模型层实现参数绑定;2)工具层封装十六进制转换方法;3)主窗体处理串口控制、数据收发等交互逻辑。关键技术涉及SerialPort类使用、跨线程UI更新和配置持久化。文章还提出异常处理优化、历史记录等改进建议,适用于嵌入式调试等场景。

weixin_66547608的博客 1377

Windows Forms 窗体常用事件表格

csharp。

Rocn666的博客 1059

64位的Mac OS X也有Windows.Forms

\看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料!\\\Mono长期以来一直为Linux、Mac和Windows提供Windows.Forms的纯C#实现。随着技术潮流的变化,Mono的Windows.Forms平台仍然没有得到很好的发展,还只是各种第三方库和应用程序的依赖,这使得它的重要性超过了那些基于WinForms的应用程序。Mono默认切换到64...

weixin_34126215的博客 70

Unity 读取、写入自定义路径文件,调用System.Windows.Forms

调用System.Windows.Forms DLL 首先在Unity新建Plugins文件夹添加System.Windows.Forms.dll 然后代码中添加引用using System; using System.Windows.Forms; using System.IO;

G__Dragon的专栏 5800

C# Windows Forms应用中敏感信息的隐藏与加密策略

虽然现成的加密算法如DPAPI已足够强大和安全,但在某些特定情况下,我们仍需要或希望使用自定义的加密算法。例如,在遵守特定法规或标准的场景下,可能需要一个符合特定要求的加密算法。或者在一些非常特殊的场景中,标准算法的性能不符合要求,需要特定优化的算法。此外,自定义算法可以在以下场景中提供独特的价值:专利和许可问题:如果使用的算法受到专利保护或存在许可限制,开发一个自定义算法可以避开这些障碍。加密强度。

weixin_34620658的博客 1194
上一篇: C++ 枚举类型的思考
下一篇: C# 2.0 匿名方法与 Windows Forms 异步调用
classfactory
博客等级 码龄26年 3粉丝 10原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值