Relation between length and font-size of a string

2019-08-21 11:53发布

问题:

I've a field in a database, this field has a maximum length, and I want to set a textbox to the appropriate width. I'm creating the textboxes in runtime. How can I calculate the value of width property?

For example, if I have a field nvarchar(5) named IDClient, and the font-Size is 13, I want to create a texbox with a width enough to write 5 chars.

回答1:

Maybe should use TextRenderer.MeasureText(string, font).

Here a little sample which should might help you

        //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;


回答2:

Specify

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

You can calculate w=num_characters * k. Where k is constant. First keep k = 15. And then do hit and trial until u find the best fit.