我有一个最大长度为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个字符后删除它并再次写入我希望它将文本流式传输,就好像它向左滚动一样。
答案 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;