1

MDI 子フォームの開始位置でこの奇妙な問題が発生しています。これが開始位置のコードです。MDI 親フォームの左中央にしたかったのです。

        //show the task bar
        ChildForm c1 = new ChildForm();

        c1.MdiParent = this;
        c1.StartPosition = FormStartPosition.Manual;
        c1.Location = new Point(0, this.Height/2);

奇妙なことは、Mdi 親フォームを起動するたびに、垂直スクロールバーが表示され、mdi 子フォームが MDI 親フォームの高さの半分よりも低い位置にあることです。次に、スクロール バーを下にスクロールして mdi 子フォーム全体を表示すると、スクロール バーが消えます。

この後、mdi 親フォームのサイズを変更しても、スクロールバーは再び表示されなくなります。

誰もが理由を知っていますか?

また、mdi 親フォームにハンドルのようなコントロールだけを残して mdi 子フォームを非表示にすることは可能かどうか疑問に思っていました。ユーザーがそのハンドルをクリックすると、フォームが再び表示されます。ユーザーが別の場所をクリックすると、フォームが非表示になります。ウィンドウのタスクバーのようなものです。

form.hide() を使用しようとしましたが、mdi 子フォーム全体が非表示になります。

ありがとう

アレックス

4

2 に答える 2

3

あなたの計算が上部のウィンドウバーを考慮している可能性があります。

PointToClientまたはPointToScreenを見ることができます

于 2009-11-28T07:01:39.930 に答える
1

あなたはこのように子フォームの高さと幅をマイナスにする必要があります

c1.Location = new Point(0, (this.Height - c1.Height)/2); 
于 2010-12-14T04:29:58.060 に答える