请选择 进入手机版 | 继续访问电脑版

大富翁Delphi开发技术网站

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2443|回复: 0

[控件下载] C#实现的一个可以拖动调整大小的文本框

[复制链接]

970

主题

1459

帖子

4501

积分

论坛元老

Rank: 8Rank: 8

积分
4501
发表于 2014-7-5 11:58:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
gif.GIF main.png

介绍

本文章介绍了C#实现的一个可以拖动调整大小的文本框,在之前的一个项目中,需要能够在运行情况下进行控件拖动调整大小的功能,经过在网络上搜索,然后自己进行了开发,上面的截图是程序运行后的效果。

拖动组件其实是通过3个事件来实现,MouseDown,MouseMove事件和MouseUp。

MouseDown的时候,设置Flag=True
MouseMove的时候,如果Flag=True,那么改变文本框的大小
MouseUp的时候,设置Flag=False

然后MouseMove 的时候,会调用如下的SetMoveFunction函数:
  1. public void SetMoveFunction()
  2.         {
  3.             bool isDragging = false;
  4.             Point StartPoint = Point.Empty;
  5.             this.MouseDown += delegate(object sender, MouseEventArgs e)
  6.             {
  7.                 if (e.Button == MouseButtons.Left)
  8.                 {
  9.                     isDragging = true;
  10.                     StartPoint = new Point(e.X, e.Y);
  11.                     this.Capture = true;
  12.                 }
  13.             };
  14.             this.MouseUp += delegate(object sender, MouseEventArgs e)
  15.             {
  16.                 this.Cursor = Cursors.Arrow;
  17.                 isDragging = false;
  18.                 this.Capture = false;
  19.             };
  20.             this.MouseMove += delegate(object sender, MouseEventArgs e)
  21.             {
  22.                 if (isDragging)
  23.                 {
  24.                     this.Cursor = Cursors.NoMove2D;
  25.                     this.Left = Math.Max(0, e.X + this.Left - StartPoint.X);
  26.                     this.Top = Math.Max(0, e.Y + this.Top - StartPoint.Y);
  27.                 }
  28.             };
  29.         }
复制代码

在拖动的时候,要设置this.Capture = true;,这样可以让拖动更加顺畅,但是在停止拖动并且MouseUp后,需要让Capture =False



转载请保留当前帖子的链接:http://www.dfwlt.com/forum.php?mod=viewthread&tid=986 谢谢!

搜索简单,分享不易,且分享且珍惜,您难道不想分享下您的心得?如果觉得本文章好的话,您可以在我们网站上注册,然后发布您的好的心得,让大家共同进步,谢谢!

最新添加

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

申请友链|Archiver|手机版|小黑屋|大富翁Delphi开发技术网站 ( 苏ICP备12065705号-4

GMT+8, 2019-7-21 07:18 , Processed in 0.108533 second(s), 31 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表