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

开发 后端
本文将介绍一个WinForm表单窗体设计器,这里我们还要用到.NET方面的知识,希望本文能对大家有所帮助。

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

外观1

 

外观2



类图:
类图1


我用的WinForm表单窗体设计器的方法自己感觉还是比较挫的,并不复杂.

类图2

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

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

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

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

【编辑推荐】

  1. ASP.NET Session 模型简述
  2. ASP.NET页生命周期介绍:阶段,事件及其他
  3. ASP.NET MVC生命周期介绍
  4. 处理ASP.NET Session失效的几个方法
  5. ASP.NET:所有实例共享一个static变量
责任编辑:彭凡 来源: cnblogs
相关推荐

2009-09-24 17:09:03

XML设计器

2015-09-08 11:06:46

设计编辑窗体

2009-07-07 11:38:54

jsp oracle

2023-07-10 07:58:45

2021-08-08 21:17:18

管理配置平台

2023-01-18 07:49:42

2023-10-06 11:48:37

reactvuenodejs

2021-12-08 07:31:40

设计Localcache缓存

2014-04-14 15:54:00

print()Web服务器

2017-08-11 17:55:48

前端JavaScript模板引擎

2011-10-25 09:28:30

Node.js

2019-01-18 08:28:21

服务器程序架构

2010-06-13 09:15:16

WinForm窗体

2016-11-08 18:53:08

编译器

2022-10-20 11:00:52

SQL解析器

2023-04-17 09:08:27

CSS计时器

2021-06-25 10:38:05

JavaScript编译器前端开发

2021-11-01 12:25:56

Redis分布式

2024-12-09 00:00:03

Vue3项目表单

2013-03-26 14:17:21

架构架构设计事件驱动
点赞
收藏

51CTO技术栈公众号