[原创]用C#创建可拖动窗体

本文详细讲解如何使用C#创建可拖动窗体,适合有一定C#开发基础但不熟悉此技巧的读者。通过理解窗体构造元素和鼠标事件处理,结合SystemInformation类和Control类的相关属性,实现鼠标在用户区内移动时窗体随之移动的效果。文章还提供了制作不规则窗体、无边框窗体和无标题栏有边框窗体的小技巧。
摘要由CSDN通过智能技术生成

用C#创建可拖动窗体

原著:lover_P


    所谓“可拖动窗体”就是无需拖动标题栏就可以拖动的窗体,这在一个没有标题栏的窗体上是一种非常有用的技术。关于这一方面的技巧,网上已经有很多介绍,但都不是很详尽,有些实现也不够简洁。最主要的,这些介绍大多是大片大片的源代码,很少讲解;初学者学期来恐怕要费些力气(我在学习这个技巧的时候就很痛苦)。在这里,我对这个技巧进行了一个详细的讲解,相信各位初学者朋友可以学会如何制作可拖动窗体。

    (注:本文期望的读者是那些有一定用C#开发Windows程序基础但暂时还不会制作可拖动窗体的朋友。)

    首先,我们来复习一下一个Windows窗体的组成。请看这张图:


图1  Windows窗体构成

点击查看原图


    这是一个形式化的标准Windows窗体。首先,窗体的顶部是一个标题栏,其余的部分是窗体的主体,包围在窗体主体外围的是一个边框,边框内不就是我们放置控件或绘制图形的用户区。

    图中还标明了各种窗体构造元素的尺寸的获得方法。对于用户区,System.Windows.Forms.Form提供了实例属性ClientSize,相信大家已经很熟悉了。而要想活棋一般性的窗体构造元素(如标题栏、边框等)的尺寸,我们可以使用.NET类库中提供的一个类:System.Windows.Forms.SystemInformation,这个类提供了一些静态属性如表示标题栏高度的

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值