1

TextBox コントロールを使用して、最大長を適用したいと考えています。ただし、最大長は、文字数ではなく、ピクセル単位の文字列サイズに基づいています。

入力する文字数を制限すると、テキスト レンダラーによって文字がトリミングされ、通常は省略記号 (...) で切り捨てられる場合があります。

問題は、必ずしも固定フォントを使用しているとは限らないことです。そして、私は複数行のテキストボックスを使用しています。

4

2 に答える 2

1

フォントのサイズが固定されていない場合は、文字を入力するたびに幅/高さを再計算する必要があります。

このようなもの:

public void ValueChanged()
{
    var stringSize = e.Graphics.MeasureString(textBox.Text, textBox.Font);
    if(stringSize.Height > MAXSTRINGHEIGHT)
    {
       textBox.Text = TrimTextAndAddEllipsis(textBox.Text);
    }
}
于 2012-10-23T14:31:32.830 に答える
0

以下の式に従って、その幅を設定する必要があると思います

[border slack] + ([character length] * ([number of characters] + [5 - number of characters Mod 5])). 
于 2012-10-23T14:26:11.310 に答える