TextBox.Text 不能正确证明
本文关键字:确证 证明 不能 Text TextBox | 更新日期: 2023-09-27 18:30:47
根据我的理解,如果文本的长度超过文本框可以显示的内容,下面的代码应该右对齐文本,否则它会保持左对齐。
问题是它实际上并没有这样做,而且它的行为真的很奇怪。短字符串有时会右对齐,长字符串总是左对齐。
我做错了什么?
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();
}
从您的评论中,您希望根据文本长度移动光标位置。您可以使用TextBox.Select()
方法。有关详细信息,请查看 MSDN
因此,如果要将光标移动到文本的开头,则可以使用
textBoxCurrentConfig.Select(0, 0);
如果要将光标移动到文本末尾,可以使用
textBoxCurrentConfig.Select(textBoxCurrentConfig.Text.Length, 0);
尝试删除
this.Refresh();
这可能会导致页面刷新并将文本框返回到原始对齐方式