- 7
- 0
- 约 4页
- 2017-06-07 发布于重庆
- 举报
C窗体设计器的使用
C#窗体设计器开发实例详解
?2009-09-07 06:18 ?RonoTian ?CSDN博客 ?我要评论 0 C#窗体设计器的开发实例这里主要向你介绍实现控件移动的功能,希望对通过介绍使你对了解和学习C#窗体设计器的开发有所帮助。
C#窗体设计器开发实例主要向你介绍控件移动,关键点就是需要设计一个独立于任何控件的类(UIMoveKnob)来控制控件的移动。我这里实现的方法只针对一个控件,如果需要同时选择多个控件,然后同时移动的话,你需要修改这个类,这里是有点难于控制,我使用的方法严重耦合,所以只在这里给出移动一个控件的办法,具体移动过个控件的方法请各位讨论。
C#窗体设计器开发目的:
要移动某个选定的控件,实现控件的:MouseDown;MouseMove;MouseUp这3个事件。
在MouseDown的时候,记录鼠标点击的开始位置,并设置开始移动标志为True;
在MouseMove的时候,把控件移动相应的距离(当前鼠标位置 – 鼠标点击的开始位置);
在MouseUp的时候,释放移动标志为false。
有了控件移动控制类 UIMoveKnob 以后,我们怎么实现UIMoveKnob和具体控件的关联呢?同样,我们需要在Form中增加一个变量private Hashtable _HashUIMoveKnob用于缓存每个控件对应的UIMoveKnob对象。
同时在Form.ControlAdded事件中,通过this._HashUIMoveKnob.Add e.Control, new UIMoveKnob e.Control ;设置其关联性。
C#窗体设计器开发之UIMoveKnob的代码如下:
public?class?UIMoveKnob private?System.Windows.Forms.Control?_Owner; private?int?_MouseClickAtX; private?int?_MouseClickAtY; private?bool?_BeginDrag; ?
public?UIMoveKnob System.Windows.Forms.Control?Owner this._Owner? ?Owner; ?
this._Owner.MouseDown?+ new?System.Windows.Forms. ?
MouseEventHandler this.Owner_MouseDown ; this._Owner.MouseMove?+ new?System.Windows.Forms. ?
MouseEventHandler this.Owner_MouseMove ; this._Owner.MouseUp?+ new?System.Windows.Forms. ?
MouseEventHandler this.Owner_MouseUp ; void?Owner_MouseDown object?sender, System.Windows.Forms.MouseEventArgs?e this._Owner.Cursor System.Windows.Forms.Cursors.Default; ?
this._MouseClickAtX? ?e.X; this._MouseClickAtY? ?e.Y; this._BeginDrag? ?true; void?Owner_MouseMove object?sender, System.Windows.Forms.MouseEventArgs?e try if? this._BeginDrag Rectangle?rect; ?
/* *?对于下列控件,是不能拖动的,所以这里也不绘制拖动边框 *?TabPage, */ if? this._Owner?is?System.Windows.Forms.TabPage // else this._Owner.Location new?Point this._Owner.Left?+ e.X?-?this._MouseClickAtX, this._Owner.Top?+?e.Y?-?this._MouseClickAtY ; catch void?Owner_MouseUp object?sender, System.Windows.Forms.MouseEventArgs?e this._BeginDrag? ?false; this._Owner.Parent.Refresh ; 修改后的Form代码前半部分如下:
private?MouseHook?_MouseHook; //我们将所有的已经与具体控件关联了的UISizeKnob缓存在这个HashTable中 pr
您可能关注的文档
- 三方支付清算发展历程及其问题.docx
- 8.24苏老师语文教案.doc
- 8.1《战后资本主义世界经济体系的形成》教案(新人教必修2)..doc
- 86班医用化学基础期末(上)复习题.doc
- 8A----第三到第六单元.doc
- 8新课程教学设计与案例教学.doc
- 三笔翻译真题.doc
- 三维设计2012高考物理二轮复习课堂综合演练(广东专版)专题4功和能.doc
- 三维设计2012高考物理二轮复习课堂综合演练(广东专版)专题5动量守恒.doc
- 三维设计2012高考物理二轮复习课堂综合演练(广东专版)专题1直线运动的规律.doc
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
原创力文档

文档评论(0)