2012-01-03 12 views
-1

MDIフォームとその場所に問題があります。私はいくつかの子フォームを開くコンテナフォームを持っています。また、コンテナフォームには、上部にToolStripがあり、上部にドッキングされていることにも注意してください。子フォームのそれぞれで、以下のプロパティを設定しました。私は設計時にもそれらを設定しましたが、何らかの理由で動作していないので、form_loadイベントにも入れました。VB.Netフォーム - MDIフォームが正しく配置されない

Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None 
Me.Dock = DockStyle.Fill 
ReSizeAndArrange(Me.Width, Me.Height, False) 

機能ReSizeAndArrangeform_loadform_layoutイベントに呼ばれています。私が抱えている問題は、子フォームが残りのスペースを正しく埋めるのではなく、親フォーム全体を正しく埋めるということです。私が踏み込んだとき、私は子フォームのために得ている座標です。

frmContainer.Size {Width = 972 Height = 972} System.Drawing.Size 
me.Size  {Width = 968 Height = 901} System.Drawing.Size 
frmContainer.ToolStripMain.Size {Width = 954 Height = 67} System.Drawing.Size 
frmContainer.Location {X = 90 Y = 22} System.Drawing.Point 
me.Location  {X = -9 Y = -36} System.Drawing.Point 

Me.Location0,0ではないでしょうか?数字は、私が思うサイズに加わる。 4ピクセルの違いはおそらく境界によって説明することができますが、場所は説明できません。誰かがこれを解読できますか?

+0

私はその関数の最初の行に上記の値をトラップしているので、コードは重要ではありません。 – Chiwda

+0

なぜ-1?誰? – Chiwda

答えて

0

OK、フォームの位置を(0,0)に設定するだけで問題は解決しました。それでも質問には答えませんが、回避策です。

0

0、0はフォームのサイズやレイアウトに制約がないためです。それはそれを決定することができます。あなたがそこに置くどんな値もあなたの仕様に従うように強制します。 0、0は回避策ではありません。「自分で決める」というのはそれを行う方法です。

+0

私はお詫びしますが、あなたの説明を理解できませんでした。あなたは詳細を教えていただけますか? – Chiwda

関連する問題