C#中实现拖动无边框窗体Form

拖动无边框窗体Form至桌面任何位置

首先建一个Windows应用程序

将Form1的 FormBorderStyle属性设置为Noe

 

创建控件panel1放在标题栏位置

 

代码
        Point mouseOff;//鼠标移动位置变量
         bool leftFlag;//标签是否为左键

        
private void panel1_MouseDown(object sender, MouseEventArgs e)
        {
            
if (e.Button == MouseButtons.Left)
            {
                mouseOff 
= new Point(-e.X, -e.Y); //得到变量的值
                leftFlag = true;                  //点击左键按下时标注为true;
            }
        }

        
private void panel1_MouseMove(object sender, MouseEventArgs e)
        {
            
if (leftFlag)
            {
                Point mouseSet 
= Control.MousePosition;
                mouseSet.Offset(mouseOff.X, mouseOff.Y);  
//设置移动后的位置
                Location = mouseSet;
            }
        }

        
private void panel1_MouseUp(object sender, MouseEventArgs e)
        {
            
if (leftFlag)
            {
                leftFlag 
= false;//释放鼠标后标注为false;
            }
        }

 

 

就可以实现了
posted @ 2010-04-20 09:38  韩天伟  阅读(1188)  评论(0编辑  收藏  举报