Я работаю над приложением winforms, используя MetroFramework. Я хочу программно изменить размер формы, чтобы на нее мог поместиться более крупный объект. Для этого я использую переключатель из рамки в объекте tabControl
. Создание формы больше работает отлично, но когда я отключу переключатель, он не хочет сжимать форму.C# Изменение размера winforms не работает должным образом
private void tSynced_CheckedChanged(object sender, EventArgs e)
{
if (tSynced.Checked)
{
//Sync enabled
Console.WriteLine("Sync enabled");
this.Size = new Size(this.Width + 300, this.Height);
this.MinimumSize = new Size(this.Width, this.Height);
this.MaximumSize = new Size(this.Width + 200, this.Height);
} else
{
//Sync disabled
Console.WriteLine("Sync disabled");
this.Size = new Size(this.Width - 300, this.Height);
this.Width = 534;
Console.WriteLine(this.Size);
this.MinimumSize = new Size(this.Width, this.Height);
this.MaximumSize = new Size(this.Width, this.Height);
}
}
Как вы можете видеть, я экспериментировал с некоторыми методами, которые я знаю, просто чтобы дать ему попробовать и работать свой путь назад оттуда, но это не похоже на работу. Это кажется мне странным, так как первый метод (линия this.Size
) действительно работает при создании формы больше. Ключ this
относится к Form
согласно Visual Studio. Кажется, он не пытается изменить размер tabControl
, потому что я привязал его к правой стороне и правильно двигаюсь вместе с правой границей.
Журнал для this.Size
вернет большое значение, которое составляет {Width=834, Height=354}
в моем случае.
Я попытался сохранить начальные значения в переменной Size
и восстановить его там (поскольку он будет учитывать изменение размера пользователем), но это не работает корректно.
Size oldSize; //Global variable
private void initialize()
{
oldSize = new Size(this.Width, this.Height);
Console.WriteLine(oldSize);
}
this.Size = oldSize; //In the eventhandler
Журнал будет возвращать правильное значение, которое в моем случае {Width=534, Height=354}
. Но он отказывается использовать значение при настройке имущества this.Size
еще раз ...
Что я имею в виду?
Eeewh, herpiederp! Я знал, что это должно быть что-то простое: p работает как шарм! Спасибо :) – MagicLegend