时间:2014-6-12 作者:悬浮的青春 分类: .net相关
因为窗体无边框所以事件不能写在窗体的mouse事件中,因为无法触发。可以写在放在顶部的某个控件中,可以是panel也可以是picturebox
例如我就是在顶部放了个picture。
分别触发picturebox的三个mouse事件,分别是mousedown,mousemove,mouseup。
Point mouseOff;//鼠标移动位置变量
bool leftFlag;//标记是否为左键
privatevoid picturebox_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
mouseOff = new Point(-e.X, -e.Y); //得到变量的值
leftFlag = true; //点击左键按下时标记为true;
}
}
private void picturebox_MouseMove(object sender, MouseEventArgs e)
{
if (leftFlag)
{
Point mouseSet = Control.MousePosition;
mouseSet.Offset(mouseOff.X, mouseOff.Y); //设置移动后的位置
Location = mouseSet;
}
}
private void picturebox_MouseUp(object sender, MouseEventArgs e)
{
if (leftFlag)
{
leftFlag = false;//释放鼠标后标记为false;
}
}
然后你就可以在picture上拖动整个窗体了!
标签: net