1

我正在连接一个有时足够长的字符串,以至于它不适合标签控件。我怎样才能让它自动滚动到右侧,所以我总是看到字符串的结尾?

4

3 回答 3

5

虽然我确定有办法,但我不得不问,为什么?我认为它看起来和/或工作起来很糟糕,并且可能会使用户感到困惑。

为什么不在最后用椭圆 (...) 修剪文本并在标签上显示工具提示?

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);

现在,当用户将鼠标悬停在工具提示上时,它将显示全文。由于标签中的文本将被截断并以椭圆结尾,因此用户应该知道将鼠标悬停在上面以获取更多信息(通常是标准方式)。

于 2009-03-09T06:41:03.867 回答
1

TextAlign属性允许您指定对齐方式。如果你用它右对齐,文本的右侧将始终可见。但是,如果您希望它左对齐或居中对齐并且仍然具有您描述的行为,我怀疑您需要执行一些测量Graphics.MeasureString以确定文本是否适合并动态更改对齐方式。

于 2009-03-09T04:00:30.600 回答
0

AFAIK 无法滚动标签。一个技巧是使用 TextBox (只读,关闭边框),然后使用 SendKeys.Send() 将光标移动到文本的末尾。就像是:

        textBox1.Focus();
        SendKeys.SendWait("{END}");

为了使文本不显示为选中状态,我必须更改它在制表符顺序中的位置(使其不是 1),但这在您的情况下可能不是问题。

于 2009-03-09T04:49:42.747 回答