将TabControl放在FormControl上的Form和Panel上

时间:2016-10-07 14:49:29

标签: vb.net

在“设计”视图中具有此设置的WindowsForm应用程序:

MainForm.WindowState =最大化
TabControl.Dock =无
ControlPanel(在TabControl内).Dock =无

我需要将TabControl放在Form上的TabControl和TabControl上的Panel

使用

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 个答案:

答案 0 :(得分: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

您可以将其放在表单的resize事件中并加载

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

同样,您可以使用相对于选项卡控件的面板执行类似的操作。您可能还希望在表单调整大小时调整控件的大小,但这不在您的问题范围内......