winform上创建可拖动缩放的控件
来源:互联网 发布:卖钣金展开软件 编辑:程序博客网 时间:2024/06/05 10:25
private Control downCtrl;//鼠标按下控件
private Point downLoc;//鼠标按下位置
bool ctrlMove;//标记拖动状态
bool ctrlZoom;//标记缩放状态
2. 定义控件的MouseDown事件
private void Control_MouseDown(object sender, MouseEventArgs e)
{
downCtrl = sender as Control;
downLoc = e.Location;
if(downCtrl.Cursor == Cursors.SizeAll)
{
ctrlMove = true;
ctrlZoom = false;
}
else if(downCtrl.Cursor == Cursors.SizeNWSE | downCtrl.Cursor == Cursors.SizeNS | downCtrl.Cursor == Cursors.SizeWE)
{
ctrlMove = false;
ctrlZoom = true;
}
}
3. 定义控件的MouseMove事件
private void Control_MouseMove(object sender, MouseEventArgs e)
{
Control control = sender as Control;
//获取控件相对于容器的位置
Point p1= Control.MousePosition;
Point p2 = panel1.PointToClient;
if (x >= control.Right - 5 && x<= control.Right + 5 && y >= control.Bottom - 5 && y <= control.Bottom + 5) //右下角
{
control.Cursor = Cursors.SizeNWSE;
}
else if (x >= control.Left - 5 && x<= control.Right + 5 && y >= control.Bottom - 5 && y<= control.Bottom + 5) //下边界
{
control.Cursor = Cursors.SizeNS;
}
else if(x >= control.Right - 5 && x<= control.Right + 5 && y >= control.Top - 5 && y<= control.Bottom + 5) //右边界
{
control.Cursor = Cursors.SizeWE;
}
else
{
control.Cursor = Cursors.SizeAll;
}
if ((e.BUtton == MouseButtons.Left) && ctrlMove)
{
int pos_x, pos_y;
pos_x = downCtrl.Location.X + (e.X-downLoc.X);
pos_y = downCtrl.Location.Y + (e.Y-downLoc.Y)
downCtrl.Location = new Point(pos_x, pos_y);
}
if ((e.BUtton == MouseButtons.Left) && ctrlZoom)
{
control.Width += e.X - downLoc.X;
control.Height +=e.Y - downLoc.Y;
downCtrl = e.Location;
}
}
- winform上创建可拖动缩放的控件
- winform 可拖动的自定义Label控件
- C# WinForm控件的拖动和缩放的实现
- C# WinForm控件的拖动和缩放的实现
- C# WinForm控件的拖动和缩放的实现
- 创建可拖动控件
- 创建可拖动控件
- 在WPF中的Canvas上实现控件的拖动、缩放
- 可拖动的控件
- 可拖动的控件
- WinForm实现窗体上控件的自由拖动
- c# WinForm实现窗体上控件的自由拖动
- WinForm实现窗体上控件的自由拖动
- 可在屏幕上随意拖动的控件
- C#实现某个控件上的控件随控件拖动而自动缩放其大小
- Android拖动,缩放,自定义内容,控件制作(可拖动缩放RelativeLayout定制)
- Raphael.js创建可拖动控件
- winform缩放时,控制控件的比例
- Unsupported major.minor version 51.0
- jsp中jstl标签的类似 if
- websocket入门(1)——初识socket.io
- eclipse自动补全代码(Auto activation只能输3个字符)
- 传统定时器回顾
- winform上创建可拖动缩放的控件
- Maven管理启动Tomcat时出现无效的目标发行版本
- System.Windows.Forms.SplitContainer”的对象强制转换为类型“System.ComponentModel.ISupportInitialize”失败
- k-means算法详解
- EasyUI学习总结(四)——parser源码分析
- csdn如何转载别人的文章
- context:component-scan标签的use-default-filters属性的作用以及原理分析
- [小米面试题]小米Git
- MyEclipse10安装PyDev插件