Как @ Ракитич говорит, что вам нужно убедиться, что все закреплено слева, сверху, снизу и справа.
В качестве иллюстрации я использовал однострочный текстовый блок размером, чтобы заполнить всю форму. Затем я поставил следующий код в случае SizeChanged:
private void textBox1_SizeChanged(object sender, EventArgs e)
{
TextBox tb = sender as TextBox;
if (tb.Height < 10) return;
if (tb == null) return;
if (tb.Text == "") return;
SizeF stringSize;
// create a graphics object for this form
using (Graphics gfx = this.CreateGraphics())
{
// Get the size given the string and the font
stringSize = gfx.MeasureString(tb.Text, tb.Font);
//test how many rows
int rows = (int)((double)tb.Height/(stringSize.Height));
if (rows == 0)
return;
double areaAvailable = rows * stringSize.Height * tb.Width;
double areaRequired = stringSize.Width * stringSize.Height * 1.1;
if (areaAvailable/areaRequired > 1.3)
{
while (areaAvailable/areaRequired > 1.3)
{
tb.Font = new Font(tb.Font.FontFamily, tb.Font.Size * 1.1F);
stringSize = gfx.MeasureString(tb.Text, tb.Font);
areaRequired = stringSize.Width * stringSize.Height * 1.1;
}
}
else
{
while (areaRequired * 1.3 > areaAvailable)
{
tb.Font = new Font(tb.Font.FontFamily, tb.Font.Size/1.1F);
stringSize = gfx.MeasureString(tb.Text, tb.Font);
areaRequired = stringSize.Width * stringSize.Height * 1.1;
}
}
}
}
В вашем случае со многими объектами на форме, я бы просто выбрать один, и использовать его, чтобы установить свой собственный размер шрифта, подобный выше, а затем этот размер шрифта повторяется для всех объектов в форме. До тех пор, пока вы разрешаете подходящую «допустимую погрешность» (для обработки слов и т. Д., Вышеупомянутый метод должен помочь вам.
Кроме того, я настоятельно рекомендую установить минимальную ширину и высоту для вашей формы в форме SizeChanged событие, иначе могут быть глупые вещи!
использовать свойство 'anchor', а затем опубликовать фрагмент кода. –
Извините за недоразумение, но у меня нет фрагмента кода, я бы хотел, чтобы какой-то код изменял размер шрифта до приспосабливать уже измененные элементы управления наилучшим образом без резки концов. –