Проблема в том, что свойство Font формы или элемента управления определяет размер шрифта в точках.Это измерение, которое влияет на высоту букв при изменении настройки DPI.Одна точка составляет 1/72 дюйма.DPI по умолчанию, 96 точек на дюйм и размер шрифта 9 точек, дает букву 9/72 x 96 = 12 пикселей в высоту.
Когда пользователь увеличивает настройку DPI, скажем, до 120 DPI(125%), тогда буква становится 9/72 x 120 = 15 пикселей в высоту.Если вы не позволите элементу управления увеличиваться, текст больше не будет помещаться в элемент управления.Очень некрасиво смотреть.
Свойство Form.AutoScaleMode решает эту проблему.Он проверяет, в каком размере была разработана форма, и сравнивает ее с DPI на компьютере, на котором она работает.И изменяет размеры и перемещает элементы управления, чтобы такого рода отсечение не происходило.Очень полезно, оно полностью автоматическое, без необходимости что-либо с этим делать.
Типичная проблема - бит "relocates" в предыдущем абзаце.Если вы присваиваете элементам управления собственный размер шрифта вместо того, чтобы наследовать размер формы, или если автоматическое расположение формы не кошерное, тогда элементы управления могут оказаться в неправильном месте, разрушая организованный вид формы.
Вам нужно это исправить, из вашего вопроса не ясно, каков источник проблемы.Попытка не допустить, чтобы это автоматическое масштабирование выполняло свою работу, не является устойчивым.Вам нужно будет перебрать все элементы управления в форме и изменить их шрифт, выбрав меньший размер шрифта.Это, однако, может привести к неприятностям через пару лет, если не раньше.Ваш пользователь будет жаловаться на то, что ему нужно работать с почтовой маркой.
Самый простой способ отладить проблему с макетом, избегая необходимости постоянного изменения размера DPI, - это временно вставить этот код в класс формы.:
protected override void OnLoad(EventArgs e) {
this.Font = new Font(this.Font.FontFamily, this.Font.SizeInPoints * 125 / 96);
base.OnLoad(e);
}