Windows Forms 1.x 批判

6 篇文章 0 订阅
(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)待续......
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值