2012-10-30 84 views
0

在窗口应用程序中,使用c#我创建了一个窗体并将可见性设置为false最小化,最大化按钮和formborder为none,我将一个面板放置在窗体的顶部,在该面板中放置紧靠,最小化按钮。现在我怎样才能拖动窗体。任何参考请。我的代码是在c#中更改窗体窗体的位置?

 this.ControlBox = false; 
     this.MaximizeBox = false; 
     this.MinimizeBox = false; 
     this.FormBorderStyle = FormBorderStyle.None; 

谢谢。

+1

检查此链接:http://stackoverflow.com/questions/1241812/move-ac-sharp-form-without-border-风格 – ganesh

+0

我不确定你在问什么。你想能够拖动对话框,但你不能出于某种原因? – Brandon

+0

没有布兰登,当我可见虚假窗体边框我不能拖动窗体 – Ssasidhar

回答

0

只需注册MouseDownMouseMoveMoueUp事件您Panel

bool MouseDownFlag = false; 
    Point start = new Point(0, 0); 

    private void panel1_MouseDown(object sender, MouseEventArgs e) 
    { 
     start = new Point(e.X, e.Y); 
     MouseDownFlag = true; 
    } 

    private void panel1_MouseMove(object sender, MouseEventArgs e) 
    { 
     if (MouseDownFlag) 
     { 
      Point newPoint = new Point(); 
      newPoint.X = this.Location.X - (start.X - e.X); 
      newPoint.Y = this.Location.Y - (start.Y - e.Y); 

      this.Location = newPoint; 
     } 
    } 

    private void panel1_MouseUp(object sender, MouseEventArgs e) 
    { 
     MouseDownFlag = false; 
    } 
+0

嗨Afshin,谢谢你的回复,我如何注册事件,有没有任何参考 – Ssasidhar

+0

在窗体的属性窗格中,在事件部分,双击每个MouseDown,MouseMove,MouseUp事件,以便为每个事件自动生成一个方法,或者在表单的Load事件中添加代码,如this.MouseDown + = panel1_MouseDown; .... –

+0

谢谢Afshin,它工作正常。 – Ssasidhar