【分享】Winform经验之一

ATGO 2010-06-04 01:39:27
本文作者注:这个方案并不是我想出来的,我只是造轮子。感谢原作者!好东西还是要拿出来的分享的!
在很多项目里面,因为客户需求不断的变化,程序也不得不断的修改,对于Winform项目而言,修改意味着什么?回想普通Winform程序,界面要修改?简单,打开VS修改界面编译程序发布不就OK了?但是,如果你的最终用户很多分布在不同的部门,不同的部门处在不同的地方,这个发布所带来的成本就越来越大了。自动更新(其它文章中再介绍我在用的一套方案)是一个不错的方案,但有没有比这个更好?答案是有的。
界面设计器只是这种类似方案的其中一个,其它不说先上实际项目中的图:

图1生成效果

图2设计时效果
原理解释:
其实不用多说了比较简单的原理,
1. 设计时保存控件 类型、位置、大小的XML描述;
2. 在界面产生时读取XML,判断类型创建控件,把位置、大小等代码类似如:
switch (ctrl.CtrlKind)
{
case EditCtrlKind.Label:
Label lbl = new Label();
lbl.Text = ctrl.Text;
lbl.Bounds = bounds;
lbl.BorderStyle = borderStyle;
break;
case EditCtrlKind.TextBox:
TextBox txtBox = new TextBox();
txtBox.Bounds = bounds;
txtBox.BorderStyle = borderStyle;
break;
}

3. 保留(待后补充)
...全文
559 52 打赏 收藏 转发到动态 举报
写回复
用AI写文章
52 条回复
切换为时间正序
请发表友善的回复…
发表回复
happyer_longlong 2010-08-29
  • 打赏
  • 举报
回复
那事件 函数 什么的 怎么弄
zhunz 2010-07-10
  • 打赏
  • 举报
回复
友情帮顶~!
telancs 2010-06-08
  • 打赏
  • 举报
回复
thanks
AmbitionWakeMeUp 2010-06-08
  • 打赏
  • 举报
回复
路过!
cja03 2010-06-08
  • 打赏
  • 举报
回复
15楼有提问题,如果业务逻辑实现不是远程的(如:WebService),而是dll或exe方式?如何处理?
lpt1122 2010-06-08
  • 打赏
  • 举报
回复
学习。。。。。。。。。
ATGO 2010-06-08
  • 打赏
  • 举报
回复
真没想到没人提问题...


修正一下:总是->问题
ATGO 2010-06-08
  • 打赏
  • 举报
回复
真没想到没人提总是...
参考一下BLOG
smthgdin_020 2010-06-08
  • 打赏
  • 举报
回复
8错~~~~
ATGO 2010-06-08
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 idot 的回复:]

画面的变化无非是因为业务发生变化,所以画面的变化往往都包含着一定的业务逻辑,单凭配置文件去控制画面的变化,就等于你也得把业务逻辑写到配置文件里,这好像不是好的设计。
[/Quote]


能举个例子我们来一起讨论怎么解决么?
king_wen 2010-06-08
  • 打赏
  • 举报
回复
mark 下
yyss66 2010-06-07
  • 打赏
  • 举报
回复
UP~~~
lixupengC 2010-06-07
  • 打赏
  • 举报
回复
学习了!!
shen_hao 2010-06-07
  • 打赏
  • 举报
回复
多谢分享
soyulo 2010-06-07
  • 打赏
  • 举报
回复
不错,收藏
wxhysoftsodc 2010-06-07
  • 打赏
  • 举报
回复
多谢分享
juyamei126 2010-06-07
  • 打赏
  • 举报
回复
路过 学习
ATGO 2010-06-07
  • 打赏
  • 举报
回复
[Quote=引用 34 楼 foreverwoyou 的回复:]

不知道这东西管不管用!
[/Quote]

实际项目中使用的
稻庄 2010-06-04
  • 打赏
  • 举报
回复
不知道这东西管不管用!
chanya 2010-06-04
  • 打赏
  • 举报
回复
帮顶!
加载更多回复(32)

110,577

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧