关于C#无边框窗体的移动怎么实现

 我来答
cc486255
2016-11-09 · 知道合伙人软件行家
cc486255
知道合伙人软件行家
采纳数:697 获赞数:1968
3年.NET开发经验

向TA提问 私信TA
展开全部

那就得自己写窗体移动代码了

鼠标左键按下事件:记录当前鼠标位置 A 并设置一个bool变量记录是否按下了鼠标左键isclick

鼠标移动事件:先判断isclick是否为true:获取当前鼠标位置B  A减B的距离就是窗体移动的距离

鼠标左键松开事件:isclick=false

bool isclick;
Point formpoint;
Point mousepoint;
private void panel_top_MouseDown(object sender, MouseEventArgs e)
{
     if (this.WindowState == FormWindowState.Normal)
     {
          if (e.Button == MouseButtons.Left)
          {
              isclick = true;
              formpoint = this.Location;
              mousepoint = Control.MousePosition;
           }
      }
}

private void panel_top_MouseUp(object sender, MouseEventArgs e)
{
      isclick = false;
}

private void panel_top_MouseMove(object sender, MouseEventArgs e)
{
    int newx = 0;
    int newy = 0;
    if (isclick && this.WindowState == FormWindowState.Normal)
    {
       Point temp = Control.MousePosition;
       newx = mousepoint.X - temp.X;
       newy = mousepoint.Y - temp.Y;
       this.Location = new Point(formpoint.X - newx, formpoint.Y - newy);
     }
}

写得有点凌乱,将就看吧

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式