#c# #.net #winforms #controls
#c# #.net #winforms #элементы управления
Вопрос:
env: VS2019 16.6.3 на Windows Server 2008 R2 x64
Воспроизвести шаги:
- создайте обычный проект winform .net4.0
- перетащите
CheckBox
наForm1
- добавьте новую форму (автоматическое название для
Form2
) - перетащите две
LinkLabel
буквы s и aLabel
наForm2
, убедитесь, что z-порядок равен:linkLabel1
,linkLabel2
,label1
- установите
linkLabel1
иlinkLabel2
шрифт наArial, 10.5pt
- зарегистрируйте
Load
событие дляForm2
, напишите коды:linkLabel2.Text = string.Empty; linkLabel1.Text = "<未选择>"; linkLabel2.Text = "<未选择>";
- измените
Main
содержимое метода, чтобы оно соответствовало кодам вprogram.cs
:Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); new Form1().ShowDialog(); Application.Run(new Form2());
F5
закройтеForm1
, теперь вы можете видеть, чтоlinkLabel1
ширины недостаточно
Я сообщал об этом сообществу разработчиков, но, основываясь на моем прошлом опыте, они предпочитают close
, поэтому я решил опубликовать и здесь.
Комментарии:
1. Они предпочитают не закрываться, они предпочитают исправлять то, что можно исправить, возможно, без нарушения работы существующих приложений. Эти исправления часто поставляются с обновлениями фреймворка. Попробуйте FW 4.8. Кстати, 10.5 — это нечетный размер шрифта.
2. проблема не только в размере шрифта, важен каждый шаг.
3. На
Windows 8.1
это выглядит нормально, а не обрезано. На вашем скриншотеlabel1
шрифт выглядит какCourier New
, что может указывать на то, что шрифты ОС ограничены. ПокаAutoSize = true
установлено значение, оно должно работать так, как ожидалось, если толькоOS
не сообщается о неправильном размере. Возможно, есть обновление или пакет обновления, которые устранили эту проблему.4. язык моей операционной системы — китайский,
label1
шрифт и размер заданы по умолчанию, проблем нет. @Ненависть5. проблема не в отображении, а в значении ширины,
linkLabel1.Width
есть49
,linkLabel2.Width
is65
, я запускаю его на Win10, та же проблема. @Ненависть