【发布时间】:2008-09-18 21:19:20
【问题描述】:
我想要实现的是一个表单,上面有一个按钮,导致表单“下拉”并变大,显示更多信息。我目前的尝试是这样的:
private void btnExpand_Click(object sender, EventArgs e)
{
if (btnExpand.Text == ">")
{
btnExpand.Text = "<";
_expanded = true;
this.MinimumSize = new Size(1, 300);
this.MaximumSize = new Size(int.MaxValue, 300);
}
else
{
btnExpand.Text = ">";
_expanded = false;
this.MinimumSize = new Size(1, 104);
this.MaximumSize = new Size(int.MaxValue, 104);
}
}
效果很好!除了一个小细节......请注意,宽度值应该能够从 1 变为 int.MaxValue?好吧,在实践中,它们从 this.Width 变为 int.MaxValue,即。您可以使表格更大,但永远不会再变小。我不知道为什么会发生这种情况。有人有什么想法吗?
作为记录:我还尝试了一个 Form.Resize 处理程序,它将表单的高度设置为相同的值,具体取决于布尔值 _expanded 的设置,但我最终得到了相同的副作用。
PS:我在 Visual Studio 2008 中使用 .NET 3.5。欢迎使用其他解决方案,但这是我对“应该”如何完成以及我如何尝试这样做的想法。
编辑:根据接受的答案响应,似乎代码有效。如果其他人遇到此特定问题的麻烦,请检查表单的 AutoSize 属性,它应该是 FALSE,而不是 TRUE。 (这是默认设置,但我在使用表单和带有自动调整大小的标签时将其打开,以便更早地显示调试信息)
【问题讨论】: