Control 的DraggerHelper, 拖动控件从此变得很简单。。。

简介:

程序员经常要实现拖动控件的功能,一般实现这个功能,都要注册事件,然后写MouseMove的代码,

Point point = Point.Empty;

control.MouseDown += control_MouseDown;
control.MouseMove += control_MouseMove;
 control.MouseLeave += control_MouseLeave;

如果程序的很多地方都有这个逻辑的话,那么代码就会有一大部分的重复了。

 

在网上如果你搜索控件拖动的话,大部分代码都是上面的代码,重复的逻辑,重复的故事。

于是我想,能不能写一个帮助类,当需要拖动的时候,只要调用EnableDrag方法就行了,如下:

复制代码
private void Form1_Load(object sender, EventArgs e)
{
    DraggerHelper.EnableDrag(button1);
    DraggerHelper.EnableDrag(label1);

    DraggerHelper.DisableDrag(button1);
    DraggerHelper.DisableDrag(label1);
}
复制代码

 

要实现这个效果,需要一些小技巧,当然,这些已经封装进了DraggerHelper 类。

完整的代码如下:

完整的代码

 

这里是如何使用DragHelper的例子:

复制代码
private void Form1_Load(object sender, EventArgs e)
{
    DraggerHelper.EnableDrag(button1);
    DraggerHelper.EnableDrag(label1);

    DraggerHelper.DisableDrag(button1);
    DraggerHelper.DisableDrag(label1);
}

private void button1_Click(object sender, EventArgs e)
{
    if (label1.IsControlCanDrag())
    {
        label1.DisableDrag();
    }
    else
    {
        label1.EnableDrag();
    }
}
复制代码

 完整的代码:ControlDragger.rar






本文转自LoveJenny博客园博客,原文链接:http://www.cnblogs.com/LoveJenny/archive/2013/03/20/2970433.html,如需转载请自行联系原作者
目录
相关文章
|
C#
【WPF】使用Popup控件做浮窗/提示框
原文:【WPF】使用Popup控件做浮窗/提示框 需求:当鼠标移入某个区域时,弹出一个浮窗,以便用户进行下一步操作。 效果如下图: 当鼠标移入左上角的【多选显示】框内,出现下面的浮窗(悬浮在原UI之上)。
4375 0
|
容器 网络架构 C#
WPF 控件库——可拖动选项卡的TabControl
原文:WPF 控件库——可拖动选项卡的TabControl 一、先看看效果   二、原理 1、选项卡大小和位置   这次给大家介绍的控件是比较常用的TabControl,网上常见的TabControl样式有很多,其中一部分也支持拖动选项卡,但是带动画效果的很少见。
1589 0
|
API Windows 容器
MFC应用程序——标签控件_IP控件_时间控件_List Control控件_Tree Control控件_命令按钮_列表框_组合框_图片_滚动控件(上)
MFC应用程序——标签控件_IP控件_时间控件_List Control控件_Tree Control控件_命令按钮_列表框_组合框_图片_滚动控件
198 0
MFC应用程序——标签控件_IP控件_时间控件_List Control控件_Tree Control控件_命令按钮_列表框_组合框_图片_滚动控件(上)
MFC应用程序——标签控件_IP控件_时间控件_List Control控件_Tree Control控件_命令按钮_列表框_组合框_图片_滚动控件(下)
MFC应用程序——标签控件_IP控件_时间控件_List Control控件_Tree Control控件_命令按钮_列表框_组合框_图片_滚动控件
164 0
|
C#
【WPF】点击滑动条(Slider),移动滑块(Tick)到鼠标点击的位置
原文:【WPF】点击滑动条(Slider),移动滑块(Tick)到鼠标点击的位置 问题:点击Slider控件时,滑块会自动跳到滑动条的最边缘位置,无法跳到鼠标点击的位置上。 办法:给Slider控件设置属性IsMoveToPointEnabled="True"即可!   https://stackoverflow.
2076 0
|
C#
关于wpf中popup跟随鼠标移动显示
原文:关于wpf中popup跟随鼠标移动显示 最近在做一个画图工具,里面有一个功能是需要实现,当鼠标移动的时候在,鼠标的旁边显示坐标信息。 第一反应是想到了tooltip,但是tooltip有许多的限制,查询资料的过程中看到了popup,popup比tooltip更加灵活,下面讲讲tooltip跟popup的区别: 1.tooltip会自动显示,自动隐藏,而popup则需要设置IsOpen属性,并且在Popup.StaysOen属性为true时,Popup控件会一直显示,直到显式地将IsOpen属性设置为False。
1991 0
|
C#
WPF中Popup等弹窗的位置不对(偏左或者偏右)
原文:WPF中Popup等弹窗的位置不对(偏左或者偏右) 1.情况如图:    正常情况:         部分特殊情况:        在一般的电脑都能正确显示,就是第一种情况,同样的代码为什么在不同的电脑就会显示不同的位置呢,原来Windows为了满足 不同需求的用户,左撇子和右撇子,就...
1850 0
Edit Control控件操作问题
1、创建对话框并修改对话框属性 2、创建对话框类 3、为对话框添加控件(Edit Control) 4、添加控件变量(控件属性操作修改控件ID) void Cdemo1Dlg::DoDataExchan...
1038 0