Я пытаюсь создать собственный контроль для .NET с помощью VB, и у меня возникают проблемы с достижением того, что я хочу сделать. На самом деле, я создаю элемент управления, который наследуется от класса текстового поля, и единственная модификация, которую я пытаюсь внести в него, заключается в том, что если элемент управления явно заполнен, пользователь больше не может печатать. Так:
- Полосы прокрутки никогда не должны появляться.
- Расширенный TextBox может быть многострочным или однострочным.
- Расширенный TextBox может иметь разные шрифты и размеры шрифтов.
Прямо сейчас я использую метод graphics.measurestring, чтобы получить sizeF, содержащий ширину и высоту моей строки, чтобы сравнить ее с высотой и шириной моего элемента управления текстовым полем. Все это в событии KeyDown (не знаю, лучшее ли это решение). Я могу заставить его работать нормально для ширины, но я не могу правильно подобрать высоту в многострочном текстовом поле. Если кто-то когда-либо работал с этим материалом, мне нужно какое-то объяснение того, как это должно быть сделано. Спасибо.