C# 如何在空间运行时调整控件位置和大小
最近需要实现这个功能,结合网上搜索代码,实现了该功能。
代码如下:
{
//((Control)sender).Cursor = Cursors.Hand;
//bChangeSizeMode = false;
if (!bMouseDown)
{
int right = ((Control)sender).Width;
int bottom = ((Control)sender).Height;
if (e.X > (right - 10) && e.Y > (bottom - 10))
{
((Control)sender).Cursor = Cursors.SizeNWSE;
bChangeSizeMode = true;
}
else if (e.X > (right - 10))
{
((Control)sender).Cursor = Cursors.VSplit;
bChangeSizeMode = true;
}
else if (e.Y > (bottom - 10))
{
((Control)sender).Cursor = Cursors.HSplit;
bChangeSizeMode = true;
}
else
{
((Control)sender).Cursor = Cursors.SizeAll;
bChangeSizeMode = false;
}
}
if (bMouseDown && bMoveMode)
{
if (bChangeSizeMode)
{
if (e.Button == MouseButtons.Left)
{
if (((Control)sender).Cursor == Cursors.VSplit)
{
((Control)sender).Width = e.X;
}
else if (((Control)sender).Cursor == Cursors.HSplit)
{
((Control)sender).Height = e.Y;
}
else
{
((Control)sender).Width = e.X;
((Control)sender).Height = e.Y;
}
((Control)sender).Tag = ((Control)sender).Width + ":" + ((Control)sender).Height + ":" + ((Control)sender).Left + ":" + ((Control)sender).Top + ":" + ((Control)sender).Font.Size;
}
bLocationChanged = true;
}
else
{
//((Control)sender).Cursor = Cursors.Hand;//设置拖动时鼠标箭头
if (e.Button == MouseButtons.Left)
{
Point mousePos = Control.MousePosition;
mousePos.Offset(mouseOffset.X, mouseOffset.Y);//设置偏移
((Control)sender).Location = ((Control)sender).Parent.PointToClient(mousePos);
((Control)sender).Tag = ((Control)sender).Width + ":" + ((Control)sender).Height + ":" + ((Control)sender).Left + ":" + ((Control)sender).Top + ":" + ((Control)sender).Font.Size;
}
bLocationChanged = true;
}
}
}
转载于:https://www.cnblogs.com/mantian/archive/2010/09/14/1826131.html
C# 如何在空间运行时调整控件位置和大小相关推荐
- 【转】关于EASYSIZE宏(动态调整控件位置、大小的宏)
假设创建的对话框的类名是CMyDlg,具体过程如下: 步骤一:把easysize.h拷贝到CMyDlg项目文件夹中,同时在CMyDlg的.h文件和.cpp文件中加入#include "eas ...
- c++ MFC 根据屏幕分辨率变化自动调整控件位置和大小
在mfc应用程序开发过程中经常遇到应用场景分辨率不同对应窗口的控件相对位置不同,现在通过在给窗口做尺度变换后,原来的控件位置和大小跟着变,导致界面看起来仍然协调,如下: 缩放前: 缩放后 要解决这个问 ...
- MFC 之 控件位置、大小的获取、控件的移动
获取屏幕分辨率 //下边两个函数获取的是显示屏幕的大小,但不包括任务栏等区域 int cx = GetSystemMetrics(SM_CXFULLSCREEN); int cy = GetSyste ...
- Delphi中运行时改变panel的位置及大小
procedure TForm1.pnl1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: In ...
- 在 Visual Basic 6 中让用户在运行时移动和调整控件大小
标题 在 Visual Basic 6 中让用户在运行时移动和调整控件大小 描述 此示例说明如何让用户在 Visual Basic 6 中在运行时移动控件和调整控件大小. 关键词 拖动.移动.调整 ...
- 解决使用高分辨率笔记本分辨率放大100%以上运行程序界面控件不跟随方大方式qt+gtk+ui
一.前言 解决使用高分辨率笔记本分辨率放大100%以上运行程序界面控件不跟随方大方式.使用100%时,qt界面太小,瞅着累眼睛,方大了界面,程序编译出来控件都跟着方大,布局都乱了,但是牺牲了qt cr ...
- 功能: Form窗口最大化时,控件相对位置变化的问题 (学习日记2016-12-23)
需求描述:设计Form窗体时,已经设置了Form窗口的windowstate属性为maximum(即窗口的初始打开状态为全屏显示最大化).运行的时,窗口会最大化,但是窗口内控件位置并没有变化,还在原来 ...
- 在vc2005中使用MoveWindow()调整控件大小,不能及时刷新,在vc6中则可以
在vc2005中使用MoveWindow()调整控件大小,不能及时刷新,在vc6中则可以? // ------------------------------ vc2005 ------------- ...
- 给echarts添加筛选时间控件时,控件不显示,并设置数据库无数据时echarts模块显示暂无数据
给echarts模块添加时间控件时,控件无效,经检查发现,控件被画布遮盖了,需要用一个form标签包括时间控件,否则时间控件不生效.另外,如果echarts从后台获取到的数据为空,需要提示暂无信息.这 ...
最新文章
- C语言----求解N以内的素数的两种典型方法以及其优化
- 程序员终身发展规划---应对中国软件发展的大环境要求
- Mac安装brew包管理工具
- 新浪微博视频批量上传大师 v3.1
- 多元函数概念思维导图_(重要!)高中数学概念品味+思维导图(全)-2020年1月13日更新 第16章(最后一章) 统计初步...
- rs232接口定义_RS485通讯接口定义和特点
- 【转】PHP获取当前时间、时间戳的各种格式写法汇总[日期时间]
- Java集合框架和重要接口、类
- PHP求100-1000之间的水仙花数
- nat123内网穿透
- 内点法解不等式约束的优化问题
- 甘特图在Vue中的应用篇
- 使用 bibtex 进行参考文献管理
- Python数据分析项目-共享单车骑行数据分析
- EVE模拟器完整路由拓扑实验报告
- VC通过ADO操作Access2007数据库
- 【大数据计算】(一) HDFS操作方法和基础编程
- OracleLinux-R6-U5-Server-x86_64安装,及oracle11g安装
- CS61A Proj 4
- SQL server 表之间的关系生成图
热门文章
- 知识图谱组队学习Task02——项目介绍
- BERT+CRF互联网金融新实体发现
- GCN、GAT、凸优化、贝叶斯、MCMC、LDA
- java 实体类返回大写_解决springboot bean中大写的字段返回变成小写的问题
- matlab数据归一化代码_深度学习amp;Matlab-LeNet实现图像分类
- 开机选择启动项的快捷键
- xmpp协议抓包_抓包工具有哪些?大佬们常用的18款抓包工具就是这些
- 计算机网络中TCP连接管理,计算机网络 TCP协议
- 嵌入式实时操作系统ucos-ii_「正点原子NANO STM32开发板资料连载」第三十八章 UCOSII 实验 3...
- django中ForeignKey指向自身的方法