三个面板,一个在中心,另外两个调整大小

时间:2014-07-27 09:45:33

标签: vb.net resize panel

所以, 我正在研究VB.NET Wordpad程序。我的程序中间有三个面板,中间面板有一个RichTextBox。这是一张图片:

enter image description here

示例: || || 中间是实际页面[A4] [我的尺寸准确]。当我调试Wordpad程序时它运行得很好,但是当我调整窗口大小/最大化时,侧面板都保持相同的大小,尽管中间面板调整大小但TextBox保留在面板的左侧,应该发生。当TextBox覆盖它时,面板不应该是可见的,但是当它调整大小时,TextBox保持相同的大小,并且中间面板在调整自身大小时可见。右边的面板与面板#1相同,并保持原样和相同的尺寸。

虽然我想知道如何让中间面板保持在中心[调整大小时]而不是调整中间面板的大小,两个侧面板都会调整大小。 而不是|| ||现在|#1 |#2 |#3 |

对不起这些可怕的例子,但希望有人能理解。感谢

1 个答案:

答案 0 :(得分:0)

对不起,我误解了你最初的要求,而且锚点对你想做的事情不起作用。

这是我能想到的最好的,并使用表格调整大小事件。它假设面板1和3的宽度相等,宽度是从表格宽度减去面板2的宽度得出的。

Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
    ' set panel 1 width
    Panel1.Width = (ClientSize.Width - Panel2.Width) / 2
    ' position panel 2 next to panel 1
    Panel2.Left = Panel1.Left + Panel1.Width
    ' position panel 3 next to panel 2
    Panel3.Left = Panel2.Left + Panel2.Width
    ' set panel 3 width
    Panel3.Width = (ClientSize.Width - Panel2.Width) / 2
End Sub

如果您希望面板1和面板3的尺寸不同,或者您希望面板和/或表格边界之间有间距,则可以轻松地使用此功能,但它会为您提供一个良好的起点。

enter image description here

enter image description here