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

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

 

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

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

 

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

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

 

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

1

 

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

2

 

輸入以下程式碼

 

private Point startPoint;
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
    //當滑鼠擊點到Form1控制項的範圍內時,紀錄目前是窗的位置
    startPoint = new Point(-e.X + SystemInformation.FrameBorderSize.Width, -e.Y - SystemInformation.FrameBorderSize.Height);
}
 
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
    //如果使用者使用的是左鍵按下,意旨使用右鍵拖曳無效
    if (e.Button == MouseButtons.Left)
    {
        Point mousePos = Control.MousePosition;
        //新視窗的位置
        mousePos.Offset(startPoint.X, startPoint.Y);
        //改變視窗位置
        Location = mousePos;
    }
 
}

 

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

 

文章中的敘述如有觀念不正確錯誤的部分,歡迎告知指正 謝謝
http://www.sukitech.com/?p=948
轉載請註明出處,並且附上本篇文章網址 !  感謝。

發表迴響

Post Navigation