C# Windows Form 開發,無邊框應用程式,實現【拖曳視窗】功能。

  • 3938
  • 0
  • C#
  • 2015-06-10

一般我們在開發Windows Form的桌面應用程式時,有時會使用無邊框的樣板製作 (Maybe 想要自訂樣式),但是若應用程式外框沒了,就無法透過滑鼠來移動式窗的位置,如此一來對使用者是極大的不方便,卸除率自然就攀高…

本篇文章將引導您製作可透過滑鼠拖曳的Windows Form應用程式。

一般我們在開發Windows Form的桌面應用程式時,有時會使用無邊框的樣板製作 (Maybe 想要自訂樣式),但是若應用程式外框沒了,就無法透過滑鼠來移動式窗的位置,如此一來對使用者是極大的不方便,卸除率自然就攀高…

 

本篇文章將引導您製作可透過滑鼠拖曳的Windows Form應用程式。

 

話說這是SUKI很久以前開發的專案,有使用到這個功能,

在此分享給各位國家未來的棟樑們!!

 

假設是在使用者拖曳Form控制項範圍時移動視窗,

我們就必須在Form底下的事件去撰寫程式碼

 

首先在舞台上的Form 也就是應用程式的最外層的容器,賦予名稱

image

 

並新增 【MouseDown】和【MouseMove】的事件,

image

 

輸入以下程式碼

 

   1:  private Point startPoint;
   2:  private void Form1_MouseDown(object sender, MouseEventArgs e)
   3:  {
   4:      //當滑鼠擊點到Form1控制項的範圍內時,紀錄目前是窗的位置
   5:      startPoint = new Point(-e.X + SystemInformation.FrameBorderSize.Width, -e.Y - SystemInformation.FrameBorderSize.Height);
   6:  }
   7:   
   8:  private void Form1_MouseMove(object sender, MouseEventArgs e)
   9:  {
  10:      //如果使用者使用的是左鍵按下,意旨使用右鍵拖曳無效
  11:      if (e.Button == MouseButtons.Left)
  12:      {
  13:          Point mousePos = Control.MousePosition;
  14:          //新視窗的位置
  15:          mousePos.Offset(startPoint.X, startPoint.Y);
  16:          //改變視窗位置
  17:          Location = mousePos;
  18:      }
  19:   
  20:  }

 

如此一來我們便可以直接拖曳視窗囉!

 

文章中的敘述如有觀念不正確錯誤的部分,歡迎告知指正 謝謝
轉載請註明出處,並且附上本篇文章網址 !  感謝。

SUKI

HOLIESTAR