Соотношение между длиной и размером шрифта строки и ширины текстового поля - PullRequest
0 голосов
/ 21 сентября 2009

У меня есть поле в базе данных, это поле имеет максимальную длину, и я хочу установить для текстового поля соответствующую ширину. Я создаю текстовые поля во время выполнения. Как я могу вычислить значение свойства width?

Например, если у меня есть поле nvarchar (5) с именем IDClient, а размер шрифта равен 13, я хочу создать текстовую область с шириной, достаточной для записи 5 символов.

Ответы [ 2 ]

4 голосов
/ 21 сентября 2009

Возможно, следует использовать TextRenderer.MeasureText (строка, шрифт) .

Вот небольшой пример, который может вам помочь

        //Get this value from somewhere...
        TextBox textBox = new TextBox();
        int maxWidth = 10;
        int extraSpace = 3;

        //Create sample string
        StringBuilder sb = new StringBuilder(maxWidth);
        sb.Append('w', maxWidth);

        //Measure text 
        Size size = TextRenderer.MeasureText(sb.ToString(), textBox.Font);

        //Set width of TextBox to needed width
        textBox.Width = size.Width + extraSpace;
1 голос
/ 21 сентября 2009

Укажите

input type = 'text' size = '5' width = 'w' ........>

Вы можете вычислить w = num_characters * k. Где k постоянная Сначала держите k = 15. А потом пробуй, пока не найдешь наилучший вариант.

...