2016-10-07 9 views
0

A WindowsFormのアプリケーション上のパネル:(TabControlのインサイド)センターフォーム上のタブコントロールとデザインビューでこの設定を持つTabControlの

MainForm.WindowState =最大化
TabControl.Dock =なし
のControlPanel .Dock =なし使用

私はTabControlの

上のフォームにTabControlのとパネルを中央にする必要が

TabControl.Top = (Me.ClientSize.Height/2) 
TabControl.Left = (Me.ClientSize.Width/2) 

TabControlは、これまでのところ、左下まで表示されています。いくつかのサイト上で示唆したが、

を働かなかったよう

はほとんどMe.DisplayRectangle.Height/2とMe.DisplayRectangle.Width

を使用して同じ結果がまた

TabControl.Anchor = AnchorStyles.None 

てみました使用する

TabControl.Top = (Me.ClientSize.Height/4) 
TabControl.Left = (Me.ClientSize.Width/4) 

TabControlはもっと中央に表示されます...

何が間違っていますか?デザインタイムの設定?

+1

「ControlPanel」は正確に何ですか?どのようなタイプのコントロールですか? – Plutonix

+0

申し訳ありませんが、私は従いません - フォームが最大化するときにタブのサイズを変更しない限り、パネルは少なくとも中央に置かれている必要があります。 Option Strictをオンにします。 - TabControl.Top =(Me.ClientSize.Height/2)は、DoubleをIntプロパティに割り当てています。 – Plutonix

+1

あなたはそれを中央に配置しませんでした。 TabControl.Top =(Me.ClientSize.Height - TabControl.Height)\ 2、leftと同じです。 –

答えて

2

赤はフォームの高さと幅を示し、青はそれらの寸法の半分を示します。したがって1/2を使用することは意味をなさない。

enter image description here

正しい数学はTabControlの

TabControl1.Top = (Me.ClientSize.Height - TabControl1.Height) \ 2 
TabControl1.Left = (Me.ClientSize.Width - TabControl1.Width) \ 2 

enter image description here

の大きさを伴うだろうあなたは、フォームのサイズ変更イベントでそれを置くことができ、負荷

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    centerTabControlInForm() 
End Sub 

Private Sub Form1_Resize(sender As Object, e As EventArgs) Handles Me.Resize 
    centerTabControlInForm() 
End Sub 

Private Sub centerTabControlInForm() 
    TabControl1.Top = (Me.ClientSize.Height - TabControl1.Height) \ 2 
    TabControl1.Left = (Me.ClientSize.Width - TabControl1.Width) \ 2 
End Sub 

同様に、あなたはあなたのような何かをすることができますタブコントロールを基準にしてパネルを移動します。フォームのサイズが変更されると、コントロールのサイズを変更することもできますが、それは質問の範囲外です。

+0

'(Me.ClientSize.Height - TabControl1.Height)\ 2)'(など)結果は整数で、Option Strictの下でコンパイルされます。 – Plutonix

+2

もっと良い10pt;) – Plutonix

+0

@Verdolino Right !!正しい計算には私の間違いであったタブコントロールのサイズが含まれます。 Resizeイベントについてのヒントもありがとう。これですべてOKです "同様に、タブコントロールに関連するパネルでこれを行うことができます。また、フォームのサイズが変更されるとコントロールのサイズを変更することもできますが、これは質問の範囲外です..." 私もパネルの世話をします。 – fedeteka

関連する問題