1

MDI プログラムとして開始されたアプリケーションを継承しましたが、MDI を完全にサポートするために必要なバックグラウンド作業が行われませんでした。私は、アプリケーションの見栄えを良くし、SDI アプリケーションとして適切に動作させるのに十分な MDI サポートを組み込むことを試みています。

これが私が観察しているものであり、これがどのように起こっているのか、または修正する方法がわかりません。

  1. MDIchild フォームの境界線は、MDIparent フォームのメニュー ストリップの上に表示されます。
  2. MDIchild フォームには、左上に 2 つのアイコンがあります。
  3. MDIchild フォームには、右上に 2 つの ControlBox があります。

代替テキスト

これはなぜでしょうか?

MDIChild ウィンドウの境界線 (アイコンとコントロール ボックスを含む) が完全に取り除かれると、とても嬉しいです。

ありがとう、SH

4

2 に答える 2

0

子フォームを作成しましたが、最大化ではなく通常の状態で表示されました。最大化された子フォームと同じプロセスで親フォームを表示すると、フォームが順不同で構築されたかのようです。私のコードは次のようになりました...

frmChild.WindowState = FormWindowState.Normal
frmParent.Show()  'frmChild.Show called within form_load of parent
frmChild.WindowState = FormWindowState.Maximized

はい、子ウィンドウの FormBorderStyle を None に設定しましたが、前述したように、MDI アプリケーションは必要ありませんでした。

これは Visual Studio のバグに違いないと思います。非常に多くの人がそれを困難にしているため、それは正しくありません。

于 2011-01-27T14:27:55.613 に答える
0

私が見つけた:

複数のコントロール ボックスを削除するには、子フォームで WindowState プロパティを設定する前に、MDI フォームで Show() を呼び出します。

デザイナーで WindowState を Maximized に設定しないでください。親を表示した後にコードで設定してください。

于 2011-02-08T15:58:46.173 に答える