• 【CITE】 C#中实现拖动无边框Form窗体


    首先建一个Windows应用程序

    将Form1的 FormBorderStyle属性设置为None

    主要是在Form1窗体触发三个事件:Form4_MouseDown,Form4_MouseMove,Form4_MouseUp

    代码如下:

         
    public partial class Form1 : Form
    {
            Point mouseOff;                          //鼠标移动位置变量
            bool leftFlag;                               //标签是否为左键
    
            public Form1()
            {
                InitializeComponent();
    
            }
    }

      

    //用代码设置窗体的起始位置

    private void Form_Load(object sender, System.EventArgs e) 
    { 
         this.Left=(int)((Screen.PrimaryScreen.Bounds.Width-this.Width)/2); 
         this.Top=(int)((Screen.PrimaryScreen.Bounds.Height-this.Height)/2); 
    }
    
     
    private void Form1_MouseDown(object sender, MouseEventArgs e)
    {
      if (e.Button == MouseButtons.Left)
       {
        mouseOff = new Point(-e.X, -e.Y); //得到变量的值
        leftFlag = true;                              //点击左键按下时标注为true;
      } 
    }
    
    private void Form1_MouseMove(object sender, MouseEventArgs e)
    {
       if (leftFlag)
       {
          Point mouseSet = Control.MousePosition;
           mouseSet.Offset(mouseOff.X, mouseOff.Y); //设置移动后的位置
          Location = mouseSet;
      }
    }
    
    private void Form1_MouseUp(object sender, MouseEventArgs e)
    {
       if (leftFlag)
       {
         leftFlag = false;//释放鼠标后标注为false;
     }
    }
    }
  • 相关阅读:
    LeetCode OJ combine 3
    LeetCode OJ 229. Majority Element II
    Install Qualcomm Development Environment
    更改 terminal 開啟時,預設的路徑
    Establishing Android Build Environment
    Definition vs declaration
    declaration specifier, declarator, type specifier
    echo
    sed
    電路板上的 0Ω 電阻作用
  • 原文地址:https://www.cnblogs.com/hardsoftware/p/5714427.html
Copyright © 2020-2023  润新知