WEB开发网
开发学院软件开发C语言 介绍一个基于WinForm实现表单窗体设计器 阅读

介绍一个基于WinForm实现表单窗体设计器

 2009-07-24 20:49:19 来源:WEB开发网   
核心提示:WinForm实现的外观如图所示,WinForm实现的功能包括基本的移动,介绍一个基于WinForm实现表单窗体设计器,拖动虚线边框和手柄调整尺寸,移动和调整尺寸过程中均可绘制对齐线,通过边框调整目标对象的尺寸是在边框组对象中响应的,在类图上可以看到TargetSizeGroup里的事件:OnMouseDown,OnM

WinForm实现的外观如图所示,WinForm实现的功能包括基本的移动,拖动虚线边框和手柄调整尺寸,移动和调整尺寸过程中均可绘制对齐线,自动对齐,和Visual Studio效果一样,支持画框多选后同时操作多个对象.

介绍一个基于WinForm实现表单窗体设计器

图片看不清楚?请点击这里查看原图(大图)。

介绍一个基于WinForm实现表单窗体设计器

图片看不清楚?请点击这里查看原图(大图)。

类图:

介绍一个基于WinForm实现表单窗体设计器

图片看不清楚?请点击这里查看原图(大图)。

我用的WinForm实现的方法自己感觉还是比较挫的,并不复杂.

介绍一个基于WinForm实现表单窗体设计器

看这个对象,我将虚线边框定义为TargetSizeLine,将手柄定义为TargetSizeDot,TargetSizeGroup的意思是边框组,用来保存若干个手柄对象和边框对象,一个边框组中一般保存四个边框对象,分别为四条边。

TargetSizeDot对象通过一个枚举,TargetDirection,来表示其所代表的方向,这在调整目标对象的尺寸时使用.中间粉色的目标对象,我是从UserControl继承的,为UserControlTarget,它绑定一个TargetSizeGroup对象。

通过边框调整目标对象的尺寸是在边框组对象中响应的,在类图上可以看到TargetSizeGroup里的事件:OnMouseDown,OnMouseMove,OnMouseUp。

拖动和调整尺寸只要响应这几个鼠标事件即可。绘制对齐线和自动对齐其实也比较简单,移动或调整对象尺寸时,和已有的其它对象对比,如果边框距离相近,如5像素之内,就直接让它靠到那条线上去,而画线,就判断如果边框在同一条线上,就DrawLine。

Tags:介绍 一个 基于

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接