继上次的GDI+做报表设计器后.............

上次的讨论:想用GDI+2.0做设计器,便在实现过程中遇到大麻烦
在上次讨论中,不少朋友给了很多意见,并在测试中有一个意外的收获,即FocusBox与组件的使用,
这次发上来的也主要想说明一下用FocusBox与组件使用来做一个Form设计器
现在的进度比我预计的要快,因为我计划在完成报表设计器后才去实现这个Form设计器,不过我觉得在Form设计器中只要将Label进行一些小的设置就能完成一套报表设计器的工作了.

虽然已有一点点的初形出来了,但还有很多问题没有解决,希望大家能一起讨论想一些好的解决方法

下面列出的是目前首要解决的任务
1.还有闪烁,在组件量大时会更明显
2.还不支持多组件同时移动,但已从FocusBox中生成一个Darg事件
3.组件的Paint事件未做到完美,当FocusBox移动到Text显示位置时会消失,在Label上有些时候也会不消失,(可能是未能激活相应组件的Paint事件)
4.在选择多组件时单一组件大小仍可调整,但调整Cursor不能显示
5.未加入键盘大小/位置调整功能,但已从FocusBox中引出LocationSize属性
6.未加入键盘处理功能,如Del处理
7.不能对控件实现Hook
8.选择组件时还有点问题


这里第七个问题是最麻烦的,我以前尝试用System.Windows.Forms.Design下的东西来做,但没成功,以前在网上看到外国人用这个做过一个设计器,但现在想找却找不到了,以前下载的东西又被我给删除了,哎:(


源码下载:http://files.cnblogs.com/pvistely/FormDesigner.rar
下面是用于调试的窗口,
由两个panel组成,上面的panel由Listener直接接管,下面的panel是用于来显示单个FocusBox与Mouse的位置,并在中间的textbox中显示当前FocusBox参数信息:
S:sender    P:parent    PLoc:parent location    Loc:Location    WA:WorkArea    IR:InRact

UTest按钮是来测试单一FocusBox的功能,将自动梆定Label1
LTest按钮是用来测试Listsner的整体功能,将会自动添加panel1中的所有组件

目前包括两个类
Listener:用于接管用于放置组件的容器,提供了Add方法来添加组件(目前还未支持自动设置组件parent的功能)
FocusBox:用来控制选择组件的位置与大小



posted @ 2005-09-20 00:22 Pvistely 阅读(2351) 评论(12)  编辑 收藏 网摘 所属分类: 程序日志

  回复  引用    
#1楼2005-09-20 07:48 | 四海为家[未注册用户]
还是关于那个闪烁的问题, 好像还可以用控件的beforeupdate()还是beginupdate()来开始重绘,然后调用对应的重绘后方法进行图像刷新,好像是,记不太清,如果没有, 当我没说。。。
  回复  引用    
#2楼2005-09-20 08:43 | baicai
我也是参照老外的方法改写的。
  回复  引用    
#3楼2005-09-20 08:45 | baicai
希望大家一起成立一个项目组,把它做成一个reportservice的设计程序,可以让用户自定义报表。我的msn:lushuaijun@msn.com
  回复  引用  查看    
#4楼2005-09-20 08:46 | dudu      
多图片文章建议使用摘要方式发布。
  回复  引用  查看    
#5楼2005-09-20 08:58 | 阿水      
不明白为什么不用FORMDESINGER呢,网上有HOST的程序,找找就好了,
其实我也很有兴趣 不过最近太忙了,

  回复  引用    
#6楼2005-09-20 09:12 | 世玉[未注册用户]
报表的数据源部分如何处理呢?
  回复  引用  查看    
#7楼[楼主]2005-09-20 10:15 | Pvistely      

@四海为家
没有这个事件或方法,哎,我也找过这个东西,就是找不到,只有UPDATE()

@baicai
你还有得参,我是想参都找不到了:(
做reportservice的报表设计器可能有点麻烦,嘿嘿,
我的msn:pvistely@msn.com
 
@dudu
知道知道~就这一次,嘿
 
@阿水
找不到,不知道用什么KEY来找这方面资料,
 
世玉
目前首要的目的是实现设计,至于数据源连接与数据处理将在日后讨论

  回复  引用    
#8楼2005-09-20 10:44 | pscj
对啊,用formdesigner很简单的,只要实现几个接口,根本不用管重绘这些东西
http://www.microsoft.com/china/MSDN/library/netFramework/netframework/CustomFormsDesigner.mspx
可参考这篇文章

  回复  引用  查看    
#9楼[楼主]2005-09-20 10:47 | Pvistely      
@pscj
哈哈,我找的好像就是这份资料呢,就是不知道用什么KEY来找了,谢谢~~~

  回复  引用  查看    
#10楼2005-09-20 16:22 | 阿水      
http://www.divil.co.uk/net/articles/designers/hosting.asp">http://www.divil.co.uk/net/articles/designers/hosting.asp
搜索关键字是
Hosting Form Designer
基本的功能已经有了,唯一的问题就是,没有实现 序列化和反序列化,
这个要自己实现。就不用费这么大劲了,而且这个东西觉得可以做出来
报表设计器(已经有人实现了)。希望对你有帮助。
我的MSN:byrybye@hotmail.com

  回复  引用    
#11楼2005-09-20 16:23 | 世玉[未注册用户]
我个人的感觉作报表设计器最麻烦的就是报表数据源的问题,非常想听听楼主的思路。

  回复  引用  查看    
#12楼2008-05-28 18:10 | web报表      
报表设计器应采用类excel设计器比较好.就象 e表(详见: http://webreport.cnblogs.com/" target="_new">http://webreport.cnblogs.com/)一样.



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 240054




相关文章:

相关链接: