1

我有一个 .NET 4 WinForms 应用程序,它有两个并排的多行文本框。我希望每个文本框占用可用水平空间的一半,因此我重写 OnLayout 以手动计算和设置宽度。但是,我还希望它们在调整父控件大小时垂直调整大小。我将每个锚定设置为顶部和底部,这通常足够了,但我发现如果我设置 Width 属性它会弄乱高度 - 它们比它们应该的高一点。一旦我注释掉设置宽度的行,垂直调整大小就会再次正常工作。

我也通过手动设置高度来解决这个问题,但理想情况下我想让 WinForms 锚定来处理这个问题。有什么办法可以做到这一点?我在 OnResize 和 OnLayout 事件中都尝试过,在调用基本方法之前和之后,它似乎没有任何区别。

4

1 回答 1

1

使用SplitContainerand 并将 and 设置Panel1MinSizePanel2MinSize的一半SplitContainer Width

此外,您必须同时使用Dock Fill两个TextBoxes,以便每个都消耗一半的可用空间。

在此处输入图像描述

于 2012-11-19T18:26:57.193 回答