zoukankan
html css js c++ java
运行时通过拖拽动态改变控件的大小 Virus
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Text;
using
System.Windows.Forms;
namespace
WindowsApplication11
{
public
partial
class
Form1 : Form
{
private
int
oldx;
private
int
oldy;
enum
mPosition
{
left,
right,
top,
bottom
}
private
mPosition adjust;
public
Form1()
{
InitializeComponent();
}
private
void
button1_MouseDown(
object
sender, MouseEventArgs e)
{
oldx
=
e.X;
oldy
=
e.Y;
}
private
void
button1_MouseMove(
object
sender, MouseEventArgs e)
{
Rectangle rectLeft
=
new
Rectangle(
0
,
2
,
2
, button1.Height
-
4
);
Rectangle rectRight
=
new
Rectangle(button1.Width
-
2
,
2
,
2
, button1.Width);
Rectangle rectTop
=
new
Rectangle(
2
,
0
, button1.Width
-
4
,
2
);
Rectangle rectBottom
=
new
Rectangle(
2
, button1.Height
-
2
, button1.Width
-
4
,
2
);
if
(rectLeft.Contains(e.X, e.Y))
{
adjust
=
mPosition.left;
button1.Cursor
=
Cursors.SizeWE;
}
else
if
(rectRight.Contains(e.X, e.Y))
{
adjust
=
mPosition.right;
button1.Cursor
=
Cursors.SizeWE;
}
else
if
(rectTop.Contains(e.X, e.Y))
{
adjust
=
mPosition.top;
button1.Cursor
=
Cursors.SizeNS;
}
else
if
(rectBottom.Contains(e.X, e.Y))
{
adjust
=
mPosition.bottom;
button1.Cursor
=
Cursors.SizeNS;
}
else
{
button1.Cursor
=
Cursors.Default;
}
}
private
void
button1_MouseUp(
object
sender, MouseEventArgs e)
{
if
(e.Button
==
System.Windows.Forms.MouseButtons.Left)
{
int
dx
=
e.X
-
oldx;
int
dy
=
e.Y
-
oldy;
switch
(adjust)
{
case
mPosition.left:
button1.Left
+=
dx;
button1.Width
-=
dy;
break
;
case
mPosition.right:
button1.Width
+=
dx;
break
;
case
mPosition.top:
button1.Top
+=
dy;
button1.Height
-=
dy;
break
;
case
mPosition.bottom:
button1.Height
+=
dy;
break
;
}
}
}
}
}
【Blog】
http://virusswb.cnblogs.com/
【MSN】
jorden008@hotmail.com
【说明】转载请标明出处,谢谢
反馈文章质量,你可以通过快速通道评论:
查看全文
相关阅读:
Kafka文件存储机制及offset存取
Kafka基本架构及原理
Spark性能优化指南——基础篇
SparkStreaming:关于checkpoint的弊端
SparkStreaming基本架构及使用
Spark RDD、DataFrame原理及操作详解
Spark 广播变量BroadCast
Spark基本架构及原理
Spark On Yarn的两种模式yarn-cluster和yarn-client深度剖析
大数据架构:搭建CDH5.5.1分布式集群环境
原文地址:https://www.cnblogs.com/virusswb/p/1175621.html
最新文章
Sentinel-Redis高可用方案(二):主从切换
Sentinel-Redis高可用方案(一):主从复制
webpack封装插件实现骨架屏
js代码执行以及宏任务和微任务-语法检测-预编译-变量提升
vue key Diff算法 中央bus实现平行组件之间的传值 路由的重定向和别名 vuecli2与vuecli3 RESTFul vue自定义插件
手动搭建vue-cli时,出现的错误
axios 基础知识点总结
vue-router 基础知识点总结
vue 基础知识 总结
webpack 拷贝插件copy-webpack-plugin
热门文章
webpack-dev-server
clean-webpack-plugin 打包删除无用的文件
个人技术总结文章
缓存那些事
Hbase:原理和设计
Spark性能优化指南-高级篇
Java多线程:Automic包原理
Java多线程:乐观锁、悲观锁、自旋锁
JVM:Java常见内存溢出异常分析
zookeeper
Copyright © 2011-2022 走看看