C#移动无标题窗体
在窗體的類中聲明兩個變量
private?Point?mouseOffset;?//記錄鼠標指針的坐標
private?bool?isMouseDown?=?false;?//記錄鼠標按鍵是否按下 創建該窗體 MouseDown事件的相應處理程序,注示部分為坐標的補償
private?void?Form1_MouseDown(object?sender,?System.Windows.Forms.MouseEventArgs?e)
{
????int?xOffset;
????int?yOffset;
????if?(e.Button?==?MouseButtons.Left)?
????{
????????xOffset?=?-e.X?/*-?SystemInformation.FrameBorderSize.Width*/;
????????yOffset?=?-e.Y?/*-?SystemInformation.CaptionHeight?-?SystemInformation.FrameBorderSize.Height*/;
????????mouseOffset?=?new?Point(xOffset,?yOffset);
????????isMouseDown?=?true;
????}
} 創建該窗體的 MouseMove事件的相應處理程序
private?void?Form1_MouseMove(object?sender,?System.Windows.Forms.MouseEventArgs?e)
{
????if?(isMouseDown)?
????{
????????Point?mousePos?=?Control.MousePosition;
????????mousePos.Offset(mouseOffset.X,?mouseOffset.Y);
????????Location?=?mousePos;
????}
} 創建該窗體的MouseUp事件的相應處理程序
private?void?Form1_MouseUp(object?sender,?System.Windows.Forms.MouseEventArgs?e)
{
????//?修改鼠標狀態isMouseDown的值
????//?確保只有鼠標左鍵按下并移動時,才移動窗體
????if?(e.Button?==?MouseButtons.Left)?
????{
????????isMouseDown?=?false;
????}
}
private?Point?mouseOffset;?//記錄鼠標指針的坐標
private?bool?isMouseDown?=?false;?//記錄鼠標按鍵是否按下 創建該窗體 MouseDown事件的相應處理程序,注示部分為坐標的補償
private?void?Form1_MouseDown(object?sender,?System.Windows.Forms.MouseEventArgs?e)
{
????int?xOffset;
????int?yOffset;
????if?(e.Button?==?MouseButtons.Left)?
????{
????????xOffset?=?-e.X?/*-?SystemInformation.FrameBorderSize.Width*/;
????????yOffset?=?-e.Y?/*-?SystemInformation.CaptionHeight?-?SystemInformation.FrameBorderSize.Height*/;
????????mouseOffset?=?new?Point(xOffset,?yOffset);
????????isMouseDown?=?true;
????}
} 創建該窗體的 MouseMove事件的相應處理程序
private?void?Form1_MouseMove(object?sender,?System.Windows.Forms.MouseEventArgs?e)
{
????if?(isMouseDown)?
????{
????????Point?mousePos?=?Control.MousePosition;
????????mousePos.Offset(mouseOffset.X,?mouseOffset.Y);
????????Location?=?mousePos;
????}
} 創建該窗體的MouseUp事件的相應處理程序
private?void?Form1_MouseUp(object?sender,?System.Windows.Forms.MouseEventArgs?e)
{
????//?修改鼠標狀態isMouseDown的值
????//?確保只有鼠標左鍵按下并移動時,才移動窗體
????if?(e.Button?==?MouseButtons.Left)?
????{
????????isMouseDown?=?false;
????}
}
轉載于:https://www.cnblogs.com/XingfuStar/archive/2006/02/15/331242.html
總結
- 上一篇: 背上的爱(zz)
- 下一篇: 在虚拟机下体验ubuntu(有奔头)