自定义控件的拖动牛
//添加事件
useUp += new useEventHandler(agEnd);
useMove += new useEventHandler(agMove);
useDown += new useEventHandler(agBegin);
private Point p1;//拖动前鼠标的屏幕坐标
private Point p2;//拖动后鼠标的屏幕坐标
private bool _isDrag;//是否正在被拖动
private bool _allowDragMove;
/// summary
/// 是否允许被拖动。
/// /summary
public bool AllowDragMove
{
get
{
return this._allowDragMove;
}
set
{
this._allowDragMove = value;
}
}
private void DragBegin(object sender, useEventArgs e)
{
if(tton == ft lowDragMove)
{
this._isDrag = true;
//记录下拖动前的坐标
this.p1 = intToScreen(new Point(e.X, e.Y));
}
}
private void DragEnd(object sender, useEventArgs e)
{
if(tton == ft this._isDrag)
{
this._isDrag = false;
//记录下拖动后的坐标
this.p2 = intToScreen(new Point(e.X, e.Y));
//计算位移
int x = p2.X - p1.X;
int y = p2.Y - p1.Y;
//移动控件位置
ft += x;
p += y;
}
}
private void DragMove(object sender, useEventArgs e)
{
随着时间的推移 if(this._isDrag)
{
//记录下拖动后的坐标
this.p2 = intToScreen(new Point(e.X, e.Y));
//计算位移
int x = p2.X - p1.X;
int y = p2.Y - p1.Y;
//移动控件位置
ft += x;
p += y;
//把拖动后的顶点作为新的拖动前顶点
p1 = p2;
}
}
贺州白癜风治疗哪家好成都好妇科医院
鹰潭男科医院
- 下一页:自定义控件中使用枚举类型的属性覆盖
- 上一页:自定义数据库物理表中各列字段的名称呢
- 06月21日悬疑灵异大瑞士山地犬哪里卖体形最古老品种之一位置
- 06月21日悬疑灵异大白熊犬初次步入家中要留心的问题位置
- 06月21日悬疑灵异大白熊犬体型有多大巨型大白熊犬存在吗位置
- 06月21日悬疑灵异大斑马鱼的饲养喜水质澄清有光照的环境位置
- 06月21日悬疑灵异大弹涂鱼吃什么主要以底栖硅藻为食位置
- 06月21日悬疑灵异大家一起讨论一下挑选格力犬需要关注的问题位置
- 06月21日悬疑灵异大狗这样帮小主人挠痒痒真是太贴心了位置
- 06月20日悬疑灵异吃的困惑狗狗另类保洁法位置
- 06月20日悬疑灵异合格的护工要这样做如何护理生病的高加索犬位置
- 06月20日悬疑灵异司机撞伤小狗轰油门这司机好毒位置
- 06月20日悬疑灵异史毕诺犬的喂养位置
- 06月20日悬疑灵异吃火锅把流浪狗引来了分了一半肉给它心在滴位置