如何从文本框中更新标签文本

时间:2012-02-14 05:36:24

标签: c# winforms textbox label marquee

我有一个最大长度为15个字符的标签,以及一个最大长度基本上无穷大的多行文本框。当我输入文本框以将其文本更新为标签时我想要它,但是当标签到达它时,使用“删除第一个字符的长度”并将最后一个字符替换为文本框中的下一个字母。所以基本上它看起来像一个字幕左边效果,但在我输入时实时更新。我该怎么做?

这就是我的想法

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
        String text = textBox1.Text.Replace("\r\n", "|");

        int startIndex = ((text.Length - 1) / 15) * 15;

        label1.Text = text.Substring(Math.Max(0, startIndex));
    }

但它会在文本达到15个字符后删除它并再次写入我希望它将文本流式传输,就好像它向左滚动一样。

1 个答案:

答案 0 :(得分:0)

private void textBox1_TextChanged(object sender, EventArgs e)
{
    label1.Text = textBox1.Text.Length <= 15
                        ? textBox1.Text
                        : new string(textBox1.Text.Skip(textBox1.Text.Length - 15).ToArray());
}

如果您只是想修改代码,那么您已经取代了这个

int startIndex = ((text.Length - 1) / 15) * 15;

用这个

int startIndex = text.Length - 15;