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 ...
随机推荐
- [蓝桥杯]PREV-23.历届试题_数字游戏
问题描述 栋栋正在和同学们玩一个数字游戏. 游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈.栋栋首先说出数字1.接下来,坐在栋栋左手边的同学要说下一个数字2.再下面的一个同学要从上一个同学说的数 ...
- 《剑指offer(第二版)》面试题60——n个骰子的点数
一.题目描述 把n个骰子仍在地上,所有的骰子朝上的一面的点数之和为s,输入n,打印出s所有可能的值出现的概率. 二.题解 <剑指offer>上给出的两种方法,尤其是代码,晦涩难懂且没有注释 ...
- javase高级
静态代理:需要代理对象和目标对象实现一样的接口.同一个接口,一个目标类实现,一个代理类实现,代理类除了目标类的方法还有别的增强方法优点:可以在不修改目标对象的前提下扩展目标对象的功能.缺点:1冗余.由 ...
- [练习-1] android studio 从Activity 进入 Fragment
从activity 进入到 fragment,使用系统自带的ListFragment 1,新建empty activity 2,新建Fragment(List) 3,activity_main.xml ...
- [数据库]Sql server 数据库的备份和还原____还原数据库提示“介质集有2个介质簇,但只提供了1个。必须提供所有成员”
在对数据库备份与还原的过程中,我遇到一个问题“介质集有2个介质簇,但只提供了1个.必须提供所有成员”,下面详细的介绍一下遇到问题的经过与问题解决的方法! 一.备份与还原遇到的问题描述与解决方法: 前两 ...
- 微信小程序企业给零钱打款 提示未配置api发起,请查看产品中心企业付款配置
商户平台:
- Why Lua?
Why Lua? 最近在很多的地方都遇到了lua这个东西,于是想一探究竟,为什么这么多的游戏前端都用了Lua脚本呢? 于是乎简单的看了一下Lua,目前总结出来了几点~ 还是先放上资源: GitHub上 ...
- 使用python函数持续监控电脑cpu使用率、内存、c盘使用率等
方法一: # import time 导入time模块 # import psutil 导入psutil模块 # def func(): # while True: ------->持续监控得w ...
- 常见26种NLP任务的练手项目
经常有人问我:老大让我完成xxx,我不会,他也不会,但是很着急.这个任务怎么实现啊?这个任务需要什么技术啊?这种情况我遇到有100+次了,而且很多时候问得问题跟具体需要的技术简直是驴唇不对马嘴.所以今 ...
- J Hello word
jave 学习 public class Hello { public static void main (string args []) { int i = 0; for (i = 0; i < ...