2017-01-26 10 views
-1

私は3つのパネルを持っています。それらは上部、左、そしてコンテナのような中央にドッキングしています。パネルを使用してボーダレスフォームを移動する

パネルが完全に埋め込まれているため、メインフォームをクリックするスペースが残っていません。

トップドッキングパネルをクリックしてフォームを移動したいとします。コードの下

は、(パネルの下でメインフォームをクリック)パネルを使用しなくても正常に動作

protected override void WndProc(ref Message m) 
    { 
     switch (m.Msg) 
     { 
      case 0x84: 
       base.WndProc(ref m); 
       if ((int)m.Result == 0x1) 
        m.Result = (IntPtr)0x2; 
       return; 
     } 

     base.WndProc(ref m); 
    } 

私はそれがpanel1_MouseDownが、運を使って作ってみました。

これを実装する方法はありますか?

答えて

1

これは私のために働くようだ:

bool moving; 
Point offset; 
Point original; 

void panel1_MouseDown(object sender, MouseEventArgs e) 
{ 
    moving = true; 
    panel1.Capture = true; 
    offset = MousePosition; 
    original = this.Location; 
} 

void panel1_MouseMove(object sender, MouseEventArgs e) 
{ 
    if (!moving) 
     return; 

    int x = original.X + MousePosition.X - offset.X; 
    int y = original.Y + MousePosition.Y - offset.Y; 

    this.Location = new Point(x, y); 
} 

void panel1_MouseUp(object sender, MouseEventArgs e) 
{ 
    moving = false; 
    panel1.Capture = false; 
} 
+0

まだ同じ。動きはありません。 –

+0

@ S.Zunbagうーん、私はあなたが記述したようにドッキングし、上記のコードが動作するpanel1とpanel2と呼ばれる2つのパネルで簡単なアプリを作った。したがって、OPに記載されていない他の要因が存在しなければなりません。 2つのパネルを持つ単純なアプリケーションを作成し、上記のコードを使用するとどうなりますか? –

+0

@MatthewWatsonそれは上記のように動作し、私は画像ボックスとテーブルのレイアウトパネルを使用して同じコードを試して、それは正常に動作します – Vino

関連する問題