Der Code unten sollte den Text nach rechts ausrichten, wenn der Text länger als das Textfeld anzeigen kann, andernfalls wird es linksbündig beibehalten.TextBox.Text stimmt nicht richtig
Das Problem ist, dass es dies nicht wirklich tut und es wirkt wirklich merkwürdig. Kurze Saiten enden manchmal rechtsbündig und lange Saiten sind immer linksbündig.
Was mache ich falsch?
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();
}
Welche Zahlen erhalten Sie für 'current ...' und 'allowed ...'? Funktioniert es, wenn Sie es debuggen? – Jodrell
Ich habe den Code getestet, indem ich ihn durchgegangen bin. Die Zahlen machen Sinn und die Logik funktioniert gut. Es ist die Ausrichtung, die mich hier rausschmeißt. – Kashif
@Kashif Verwenden Sie WinForms? Aus dem Code sieht es aus, dass Sie die Cursorposition entsprechend der Textlänge festlegen. Wenn das der Fall ist, können Sie die Methode textBoxCurrentConfig.Select() verwenden. – ABH