c#实现组件的运行时缩放(一)

原创 2007年10月04日 22:24:00

最近老是在什么拖放、缩放、移动上面作文章,其实还真说不上有什么技术含量, 但又不想半途而废,最终其实我是想做一个类似于grove提供的那种可视化的SQL生成器的操作环境,代替自己之前在公司做的一个组件的操作方式,象这个样子:

grove

数据表添加到窗口之后可以移动位置和缩放大小。因为不是工作任务,完全是信马由缰在零零碎碎地做着玩。那之前已经把运行时移动组件的问题解决了,现在考虑组件缩放的问题。其实《在运行时通过鼠标拖动移动控件位置及改变控件的大小 》这个转贴中是有了一种解决方法的,但反正是随意地做,就想着换换方法,就当作学习C#。我是从c++Builder转到VS 开发环境来的,如果不是公司的要求,我还真愿意继续使用c++Builder。c++Builder是一个完全可视化的开发环境,任何组件都可以采用所见即所得的方式来布置在窗体内的位置,我非常习惯于将鼠标点到某个控件上,这个控件的边角上就会显示几个操作用的句柄,把鼠标移动到句柄上就会根据句柄所在的不同的位置显示不同的鼠标光标,就象这个样子:,实际上要对控件进行缩放,是用鼠标操作这几个句柄实现的。干脆自己也这么做做看好了。其实上面这个Button的贴图是测试程序运行的效果。程序一点也不复杂,先把基本的代码贴上来,控制缩放的代码做完之后再贴。

  public partial class ControlResizeHandle : UserControl
    
{
        
私有成员
        
公共属性
        
私有方法
        
构造函数
        
公共方法

    }

除了自定义的UserControl,还另外定义了一个枚举来设定当鼠标移动到组件上时显示的鼠标光标

public enum ControlResizeHandlePosition { Right,RightBottom};

,正是这个光标让我不能把Ctrl属性设为static,因为我在Ctrl属性被赋值之后调用了SetPosition方法将组件的位置定位在控件的周围,而SetPosition却使用了这个非静态的枚举变量,破坏了静态方法对变量的引用规定。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

ADF BC 组件的运行时介绍 -1 Application Module的状态管理

ADF BC 框架中提供了开箱即用的应用‘状态管理’的功能。所谓状态管理,英文就是State Management,指的是维护用户在使用应用系统时的会话状态。概念上可能会和Http Session对象...

C#的动态语言运行时DLR

一、关于dynamic关键字 1、dynamic该类型的作用是绕过编译时类型检查, 改为在运行时解析这些操作,即对象到底属于什么类型是在运行时才确定的,而在编译时并没有确定 2、dynamic类型...

在C#中使用J#运行时来压缩与解压缩

【网通】点击此处下载演示程序                  【电信、网通】点击此处下载演示程序 【下载说明】 1、单击上面这个地址,打开下载页面。 2、点普通下载--等待30秒--点“下载”...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)