zoukankan      html  css  js  c++  java
  • 【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;
     }
    }
    }
  • 相关阅读:
    sabaki and leelazero
    apply current folder view to all folders
    string operation in powershell
    wirte function in powershell
    add environment path to powershell
    Module in powershell
    sql prompt
    vmware中鼠标在部分区域不能使用
    调整多个控件的dock的顺序
    行为型模型 策略模式
  • 原文地址:https://www.cnblogs.com/hardsoftware/p/5714427.html
Copyright © 2011-2022 走看看