我正在连接一个有时足够长的字符串,以免它不适合标签控件。如何让它自动滚动到右侧,这样我总能看到字符串的结尾?
答案 0 :(得分:4)
虽然我确定有办法,但我必须问,为什么?我认为它看起来和/或工作非常糟糕,可能会让用户感到困惑。
为什么不在末尾用椭圆(...)修剪文本并在标签上显示工具提示?
using System.Windows.Forms;
var label = new Label();
label.AutoSize = false;
label.AutoEllipsis = true;
label.Text = "This text will be too long to display all together.";
var labelToolTip = new ToolTip();
labelToolTip.SetToolTip(label, label.Text);
现在,当用户将鼠标悬停在工具提示上时,工具提示将显示全文。由于标签中的文本将被截断并以椭圆结尾,因此用户应该知道将鼠标悬停在更多信息上(通常是标准方式)。
答案 1 :(得分:1)
TextAlign
属性允许您指定对齐方式。如果你用它右对齐它,文本的右侧将始终可见。但是,如果您希望它左对齐或居中对齐且仍然具有您描述的行为,我怀疑您需要使用Graphics.MeasureString
执行一些测量以确定文本是否适合并动态更改对齐。
答案 2 :(得分:0)
AFAIK没有办法滚动标签。黑客将使用TextBox(只读,关闭边框),然后使用SendKeys.Send()将光标移动到文本的末尾。类似的东西:
textBox1.Focus();
SendKeys.SendWait("{END}");
要让文字不显示为已选中,我必须在标签顺序中更改它的位置(这样它不是1),但在您的情况下这可能不是问题。