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 ...
随机推荐
- Python高级变量类型
1.列表基础操作 2.列表循环遍历 3.元组 4.字典基础操作 5.字典循环遍历 6.字符串基础操作 7.字符串切片 8.公共方法
- linux中的查找命令find,locate,which,whereis
我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.这些是从网上找到的资料,因为有时很长时间不会用到,当要用的时候经常弄混了. which 查看可执行文 ...
- 二、初步认识springBoot的pom.xml
1. 大体结构 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www. ...
- Python【每日一问】14
问:请介绍一下Python中的 import 机制 答: import 语句结合了两个操作:1.它先搜索指定名称的模块 2.将搜索结果绑定到当前作用域中的名称. 如果指定名称的模块未找到,则会引发 M ...
- Windows中的备份和还原
1:增量备份 (查看文件属性,只备打了勾的,备完后把勾取消掉,修改后勾都会打上) 2:差异备份(备份有勾的 ,备份完后不会取消勾) 周一:备一 周二:备二 周三:备三 周四:备三,四
- petapoco模板修改
[Reference(ReferenceType.Many, ColumnName = "OneId", ReferenceMemberName = "OneId&quo ...
- [STM32F103]DMA原理
DMA配置程序过程 使能DMA时钟 a) RCC_AHBPeriphClockCmd(); 初始化DMA通道参数 a) DMA_Init(); 使能串口DMA发送,串口DMA使能函数: a) USAR ...
- CTO 技能图谱
岗位职责 建立技术团队文化 规划技术发展路线 落地产品研发成果 宣传公司技术品牌 吸引优秀技术人才 基本素质 正直诚实的道德修养 谦虚谨慎的工作态度 随机应变的处事风格 统领全局的战略思维 硬技能 技 ...
- Vue 动态路由传值
一.动态路由传值 1.配置动态路由: const routes = [ //动态路由路径参数以:开头 { path: '/Content/:aid', component:Content}, ] 2. ...
- mybatis入门篇:Mybatis高级查询
1.ResultMap的association与collection association与collection功能类似,区别是一对一与一对多,这里以association为例. 首先说明一下需求: ...