То, чего я пытаюсь достичь, - это форма, на которой есть кнопка, которая заставляет форму «выпадать» и увеличиваться, отображая больше информации. Моя текущая попытка такая:
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? Ну, на практике они идут от этого. Ширина к int. MaxValue, т.е. Вы можете сделать форму больше, но никогда не уменьшать снова. Я в недоумении, почему это произойдет. У кого-нибудь есть идеи?
Для справки: я также пробовал обработчик Form.Resize, который устанавливал одинаковое значение для высоты формы в зависимости от того, что было установлено в логическом _expanded, но в итоге я получил тот же побочный эффект.
PS: я использую .NET 3.5 в Visual Studio 2008. Приветствуются и другие решения, но я подумал о том, как это «сделать» и как я пытался это сделать.
Редактировать: кажется, что код работает, согласно принятому ответу ответа. Если у кого-то еще есть проблемы с этой конкретной проблемой, проверьте свойство AutoSize вашей формы, оно должно быть ЛОЖНЫМ, а не ИСТИНОЙ. (Это значение по умолчанию, но я включил его, так как раньше использовал форму и метку с автоматическим изменением размера для отображения отладочной информации ранее)