データベースにフィールドがあり、このフィールドには最大長があり、テキストボックスを適切な幅に設定したいと考えています。実行時にテキストボックスを作成しています。width プロパティの値を計算するにはどうすればよいですか?
たとえば、IDClient という名前のフィールド nvarchar(5) があり、font-Size が 13 の場合、5 文字を書き込むのに十分な幅の texbox を作成したいと考えています。
多分TextRenderer.MeasureText(string, font)を使用する必要があります。
ここにあなたを助けるかもしれない小さなサンプルがあります
//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;
特定
input type='text' size='5' width='w' ........>
w=num_characters * k を計算できます。ここで、k は定数です。最初は k = 15 のままにします。次に、最適な値が見つかるまで試行錯誤を繰り返します。