因WinForm动态菜单而产生的几点疑惑
创始人
2024-04-22 16:51:43
0

WinForm动态菜单产生疑惑事件起因:

WinForm入门学习时,利用设计器制作菜单,在以后的快速原型测试中,也用这种方式。但项目实际开发的时候,都是希望用代码生成WinForm动态菜单。我们可以用数据库,XML来平行地存储菜单项,也可以用XML来层次地形象的存储菜单。

虽然XML的层次结构,与菜单结构像极了,几乎是“同构”的。但WinForm中的MenuStrip,并不支持数据绑定。
感叹:在算法设计和业务操作的时候,我们希望面向对象的严格,但在组合算法,集成业务,粘合界面的时候,我们需要"宏","marco","#define"动态特性,如javascript, foxpro中那样的灵活。
问题:

1. WinForm中,为什么就不能支持菜单的数据绑定和序列化?相比之下,Asp.Net快速开发中,数据绑定要支持的好得多,多不公平。

2. c#2太静态了,以至于把菜单和事件联系起来,太难了。有的用反射;有的对字符串进行判断,大量使用switch(menuStripItem.Text) case...无可奈何的重复。希望C#能动态些,再动态些。

3. vs2010中,能动态添加字符串 表示的类和方法么,实现如下需求么?

我们希望在数据库中有如下变量表:

变量类型 变量名称
List list
我们希望在数据库中有如下方法表:
变量名称 执行方法 参数类型列表 参数值列表
list Add int 5
list Add int 8


根据 数据库,我们怎么把如字符串变成语句
"List list = new List;
list.Add(5);
list.Add(8);"

解答:对于不支持数据绑定,你可以自己写一个方法,用DATATABLE存储你的菜单结构,在菜单加载时你可以用XML化的DATATABLE进行加载,或者直接用DATATABLE进行加载。对于作者提出的第二个观点,我觉得是作者对菜单的事件绑定不太熟悉所导致的,至于用switch case结构,是作者自己的设计问题,用工厂模式就可以解决。

【编辑推荐】

  1. C#在WinForm开发中Label换行方法
  2. C#中使用多线程访问Winform问题解决方案
  3. 体验VS.NET 2005的winform新功能
  4. WinForm程序中使用控制台作为输出窗口
  5. 用Winform傻瓜式搭建asp.net mvc框架

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...