0

これが簡単な作業であることを願っていますが、助けが必要です。

  SomeForm f = new SomeForm();

  if (someStatement) // relocate pnlRight onto new form f
        {
            this.Controls.Remove(pnlRight);
            f.Controls.Add(pnlRight);

            pnlRight.Location = new Point(0, 0); // I want to place pnlRight at (0, 0) on the new form f
            this.pnlRight.Visible = false;
            f.Show();
        }
  else // hide form and relocate pnlRight onto main form
        {
            this.pnlRight.Location = new Point(pnlLeft.Location.X + pnlLeft.Width + 10, pnlLeft.Location.Y);
            this.Controls.Add(pnlRight);
            this.pnlRight.Visible = true;

            frmSettings.Hide();
        }

だから - pnlLeft と pnlRight の 2 つのパネルを持つメイン フォームがあります。ボタンをクリックすると (someStatement が true の場合)、pnlRight を新しく作成されたフォームに再配置する必要があります。完璧に動作します。BUT: pnlRight をメイン フォームに再配置すると、配置したい場所ではなく、pnlLeft の上の (0, 0) に配置されます。どうしたの?両方のパネルのプロパティを確認しましたが、オッズが表示されません。誰かが私にヒントを持っているかもしれません。

ベスト・デニス

4

2 に答える 2

0

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.location.aspx

特に、「コンテナーの左上隅を基準としたコントロールの左上隅の座標を取得または設定します。」

フォームに再度追加した、その場所を設定しようとしましたか?

于 2012-12-20T12:13:09.247 に答える
0

フォームに 2 つのパネルがある場合は、両方のパネルの Dock プロパティを、表示したい順序で設定する必要があります。

于 2012-12-20T11:50:50.130 に答える