C#移动及改变控件大小
//代码比较简单,就不多解析了。
#region 移动窗体保存数据
Point mouseOff;//鼠标移动位置变量
bool leftFlag; //标志是否为左键
bool largeFlag; //标志是否同时改变宽度及高度
bool widthFlag; //标志是否改变宽度
bool heightFlag;//标志是否改变高度
/// <summary>
/// 鼠标移动
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
Point mouseSet = Control.MousePosition;
if (leftFlag)
{
//改变宽高
if (largeFlag)
{
int dw = mouseSet.X - this.Location.X;
int dh = mouseSet.Y - this.Location.Y;
this.Width = dw;
this.Height = dh;
}
//改变宽度
else if (widthFlag)
{
int dw = mouseSet.X - this.Location.X;
this.Width = dw;
}
//改变高度
else if (heightFlag)
{
int dh = mouseSet.Y - this.Location.Y;
this.Height = dh;
}
//移动位置
else
{
mouseSet.Offset(mouseOff.X, mouseOff.Y); //设置移动后的位置
this.Location = mouseSet;
}
}
else
{
//设置改变窗体宽高的标志
if ((this.Location.X + this.Width - mouseSet.X) < && (this.Location.Y + this.Height - mouseSet.Y) < )
{
this.Cursor = Cursors.SizeNWSE;
largeFlag = true;
}
//设置改变窗体宽度的标志
else if ((this.Location.X + this.Width - mouseSet.X) < )
{
this.Cursor = Cursors.SizeWE;
widthFlag = true;
}
//设置改变窗体高度的标志
else if ((this.Location.Y + this.Height - mouseSet.Y) < )
{
this.Cursor = Cursors.SizeNS;
heightFlag = true;
}
//设置移动位置的标志
else
{
this.Cursor = Cursors.Default;
largeFlag = false;
widthFlag = false;
heightFlag = false;
}
}
}
/// <summary>
/// 鼠标按下
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
mouseOff = new Point(-e.X, -e.Y); //得到变量的值
leftFlag = true; //点击左键按下时标注为true;
}
}
/// <summary>
/// 鼠标弹起
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
if (leftFlag)
{
leftFlag = false;//释放鼠标后标注为false;
}
}
#endregion
C#移动及改变控件大小的更多相关文章
- C# 在运行中拖拽,改变控件大小位置类(转载)
原文地址:https://blog.csdn.net/zgke/article/details/3718989 copy的code /// <summary> /// 移动改变控件大小 / ...
- C++ MFC 改变控件大小和位置
用CWnd类的函数MoveWindow()或SetWindowPos()可以改变控件的大小和位置. void MoveWindow(int x,int y,int nWidth,int nHeight ...
- pyqt5 动画学习(一) 改变控件大小
入坑pyqt也有半年了,由于人们对事物的审美,静态界面已经不能满足用户,而动画却给人眼前一亮,so,今天来学习pyqt的动画了 由于资料真的是太少,本人也是有啃外国佬的英文进行摸索学习,可能也是触及皮 ...
- Android之动态改变控件大小
利用getLayoutParams()方法和setLayoutParams()方法.三步曲:1.首先利用getLayoutParams()方法,获取控件的LayoutParams.eg:LayoutP ...
- java实现控件的移动及使用鼠标改变控件大小
package cn.com.test; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; ...
- C:\\MFC控件大小随窗体大小而改变
一.大小和位置都改变 1.首先为窗体类添加CRect m_rect,该成员变量用来记录窗体的当前大小. 2.在类向导里面(Ctrl+W),为窗体添加消息WM_SIZE的响应函数OnSize(): 注意 ...
- BCGcontrolBar(五) 对话框大小改变控件自动适应
改变控件大小 首先在 构造函数中加入 EnableLayout(); 在OnInitDialog()函数中加入 CBCGPStaticLayout* pLayout = (CBCGPStaticLay ...
- android 动态改变控件位置和大小 .
动态改变控件位置的方法: setPadding()的方法更改布局位置. 如我要把Imageview下移200px: ImageView.setPadding( ImageVie ...
- MFC 改变控件的大小和位置
mfc 改变控件大小和位置用到的函数: ) void MoveWindow(int x, int y, int nWidth, int nHeight); ) void MoveWindow(LPCR ...
随机推荐
- 使用R的注意事项
换源,将源切换到中国 具体方法是: options(repos=structure(c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/&qu ...
- php正则讲解 及与 js的正则比较
正则:用于检索字符串的规则: js正则: var reg=/规则/ reg是一个对象,在浏览器下: 所以研究他的属性和方法 属性: global是修饰符,代表全局检索 g ignorecase 忽略大 ...
- [UE4]Skeletal Mesh的碰撞体
一.骨骼模型和骨骼碰撞体肯定不是完全吻合的,因为骨骼模型太复杂了. 二.骨骼碰撞体编辑在Physics Asset资源中 三.Constraints:只显示碰撞体 四.对于射击游戏来说,这样的碰撞体完 ...
- centos7 下安装zabbix3.0 agent
设置YUM源:rpm -ivh http://mirrors.aliyun.com/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpmrpm - ...
- 数学模块_math
ceil 进一, 向上取整 floor 向下取整 pow(x, y) x的y次方 print(math.pow(2, 3)) # 8.0 sqrt(x) x的开平方(结果为浮点数) print(mat ...
- Linux安装python3.6
Linux安装python3.6 原地址:https://www.cnblogs.com/kimyeee/p/7250560.html Linux下安装Python3.6和第三方库 如果本机安装 ...
- REST API TO MiniProgram 上线WordPress官方插件库
全新开发的用于 wordpress微信小程序的插件 REST API TO MiniProgram今天上线WordPress官方插件库.这个插件的上一个版本叫:wp-rest-api-for-app, ...
- related_name
定义表Apple: class Apple( models.Model): origin_level = models.ForeignKey(AppleLevel) new_level = model ...
- TCP协议-连接建立和释放
三次握手: (1)客户端向服务器端TCP请求连接,向服务器端发送控制位SYN=1,序号seq=x的请求报文.(x是随机产生的,且不能为0) (2)服务器端接收到请求报文后,若同意建立连接,则向客户端发 ...
- vue每次修改刷新当前子组件
刚入门vue,发现很多坑,对很多框架兼容性不太友好,比如layui等 每次删除相关信息,更新相关信息,不会主动刷新当前页面内容,只能手动刷新 第一步,我们在跟组件理由设置一个参数,用来判断是否需要刷新 ...