私の理解によると、テキストはテキストがテキストよりも長い場合、以下のコードはテキストを右揃えにする必要があります。それ以外の場合は左揃えにします。TextBox.Text右揃えしない
問題は実際にはこれを実行せず、実際には奇妙に動作しているということです。短い文字列は右揃えになり、長い文字列は常に左揃えになります。
私は間違っていますか?
private void textBoxCurrentConfig_TextChanged(object sender, EventArgs e)
{
SizeF stringSize = new SizeF();
stringSize = TextRenderer.MeasureText(textBoxCurrentConfig.Text, textBoxCurrentConfig.Font);
float currentTextWidth = stringSize.Width;
float allowedTextWidth = textBoxCurrentConfig.Size.Width - 10;
if (currentTextWidth >= allowedTextWidth) // if the text we want to display is larger than the textbox can hold, right justify it to show the filename
{
textBoxCurrentConfig.TextAlign = HorizontalAlignment.Right; // right justify
}
else // otherwise we can display the entire path
{
textBoxCurrentConfig.TextAlign = HorizontalAlignment.Left; // left justify
}
textBoxCurrentConfig.Refresh();
this.Refresh();
}
「現在の...」と「許可された」の数字は何ですか?あなたはそれをデバッグするときに動作しますか? – Jodrell
私はそれを踏んでコードをテストしました。数字は理にかなっており、論理はうまく機能します。私はここで私を捨ててしまいます。 – Kashif
@Kashif WinFormsを使用していますか?コードから、テキストの長さに応じてカーソル位置を設定するように見えます。その場合、textBoxCurrentConfig.Select()メソッドを使用できます。 – ABH