1)窗口去除邊框
在組件屬性中FormBorderStyle設為None
2)窗口隨着鼠標移動而動
添加引用using System.Runtime.InteropServices;
在初始化控件{InitializeComponent();}代碼后添加
1 [DllImport("user32.dll")] 2 public static extern bool ReleaseCapture(); 3 [DllImport("user32.dll")] 4 public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam); 5 bool beginMove = false;//初始化鼠標位置 6 int currentXPosition; 7 int currentYPosition; 8 //獲取鼠標按下時的位置 9 private void QRCode_MouseDown(object sender, MouseEventArgs e) 10 { 11 if (e.Button == MouseButtons.Left) 12 { 13 beginMove = true; 14 currentXPosition = MousePosition.X;//鼠標的x坐標為當前窗體左上角x坐標 15 currentYPosition = MousePosition.Y;//鼠標的y坐標為當前窗體左上角y坐標 16 } 17 } 18 //獲取鼠標移動到的位置 19 private void QRCode_MouseMove(object sender, MouseEventArgs e) 20 { 21 if (beginMove) 22 { 23 this.Left += MousePosition.X - currentXPosition;//根據鼠標x坐標確定窗體的左邊坐標x 24 this.Top += MousePosition.Y - currentYPosition;//根據鼠標的y坐標窗體的頂部,即Y坐標 25 currentXPosition = MousePosition.X; 26 currentYPosition = MousePosition.Y; 27 } 28 } 29 //釋放鼠標時的位置 30 private void QRCode_MouseUp(object sender, MouseEventArgs e) 31 { 32 if (e.Button == MouseButtons.Left) 33 { 34 currentXPosition = 0; //設置初始狀態 35 currentYPosition = 0; 36 beginMove = false; 37 } 38 }
3)窗口居中顯示
利用C# Form中的StartPosition屬性CenterScreen將界面顯示在屏幕中央
若是用代碼實現,顯示窗體前,應設置此屬性,可在調用Show()或是ShowDialog()方法之前或在窗體構造函數中設置此屬性,不要在load()事件中改變此屬性,不起作用。
4)界面大小固定
AutoSizeMode有GrowOnly和GrowAndShrink兩種屬性
GrowOnly:生成的窗體可用鼠標調節
GrowAndShrink:生成的窗體不可用鼠標調節
5)控件設為透明,無邊框
將控件的FlatStyle設為flat,為解決內邊框出現,將FlatAppearance下的BorderSize設為0.