zoukankan      html  css  js  c++  java
  • C#去边框以及无边框窗体移动

    1.去边框  :

    1) 选中要去除边框的窗体,按F4调出窗体属性。

    2)在属性框中找到FormBorderStyle选择none。

    2.去掉边框后实现对窗口程序的拖动

    1)双击窗体,进入程序设计界面 添加  using System.Runtime.InteropServices; 

    在 { InitializeComponent();  } 后添加以下代码


    [DllImport("user32.dll")]
    public static extern bool ReleaseCapture();
    [DllImport("user32.dll")]
    public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);


    bool beginMove = false;//初始化鼠标位置
    int currentXPosition;
    int currentYPosition;


    2)回到窗体界面,点击

    如图所示:属性框上部有个小闪电,点击进入 事件页面

    2)分别点击进入MouseDown 、 MouseMove、MouseUp 并分别添加以下代码


    //获取鼠标按下时的位置
    private void loginForm_MouseDown(object sender, MouseEventArgs e)
    {
    if (e.Button == MouseButtons.Left)
    {
    beginMove = true;
    currentXPosition = MousePosition.X;//鼠标的x坐标为当前窗体左上角x坐标
    currentYPosition = MousePosition.Y;//鼠标的y坐标为当前窗体左上角y坐标
    }
    }
    //获取鼠标移动到的位置
    private void loginForm_MouseMove(object sender, MouseEventArgs e)
    {
    if (beginMove)
    {
    this.Left += MousePosition.X - currentXPosition;//根据鼠标x坐标确定窗体的左边坐标x
    this.Top += MousePosition.Y - currentYPosition;//根据鼠标的y坐标窗体的顶部,即Y坐标
    currentXPosition = MousePosition.X;
    currentYPosition = MousePosition.Y;
    }
    }

    //释放鼠标时的位置
    private void loginForm_MouseUp(object sender, MouseEventArgs e)
    {
    if (e.Button == MouseButtons.Left)
    {
    currentXPosition = 0; //设置初始状态
    currentYPosition = 0;
    beginMove = false;
    }
    }

    3.测试你的窗体程序吧
    ---------------------
    作者:研途路
    来源:CSDN
    原文:https://blog.csdn.net/LPVeneno/article/details/53507112
    版权声明:本文为博主原创文章,转载请附上博文链接!



  • 相关阅读:
    [转]移动端实现垂直居中的几种方法
    MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
    关于分布式计算的一些概念
    一份最中肯的Java学习路线+资源分享(拒绝傻逼式分享)
    Java多线程学习(八)线程池与Executor 框架
    深入理解工厂模式
    深入理解单例模式
    Java NIO 之 Buffer(缓冲区)
    Java NIO 概览
    分布式系统的经典基础理论
  • 原文地址:https://www.cnblogs.com/asdyzh/p/9932326.html
Copyright © 2011-2022 走看看