Я пытаюсь найти простой способ изменить размер моей дочерней формы на основе размера родительской формы. т.е. дочерняя форма выскакивает из родительской формы (FixedToolWindow).
Чтобы сделать это в настоящее время, я достигаю этого, имея событие OnParentResize в моем дочернем классе формы. * 1003 то есть *
void OnParentResized(object sender, EventArgs e)
{
//Resize of the form shall be made only when the form is not minimized
if (parent.WindowState != FormWindowState.Minimized)
{
int iWidth = parent.Size.Width;
int iHeight = parent.Size.Height;
double dXFactor = (double)iWidth / (double)this.Width;
double dYFactor = (double)iHeight / (double)this.Height;
this.Scale(new SizeF((float)dXFactor, (float)dYFactor));
}
}
Строка this.Scale (новый SizeF ((float) dXFactor, (float) dYFactor));
масштабирует все элементы управления в моей дочерней форме.
Когда я использую это, я предполагаю, что всякий раз, когда изменяется родительская форма, моя дочерняя форма тоже. Видимо, я столкнулся с проблемой здесь, все элементы управления внутри дочерней формы привязаны к верхнему левому углу.
Изначально все элементы управления в моей дочерней форме имеют нормальный размер.
Размер родительской формы изменяется, чтобы она была маленькой, дочерняя форма также уменьшается до такого же фактора.
Теперь я увеличиваю размер родительской формы до ее первоначального размера. Размер элементов управления дочерней формы теперь увеличивается на более высокий коэффициент. А также элементы управления появляются не на своем месте.
Может кто-нибудь предложить лучший подход для таких ситуаций.
Приветствия