как сделать текстовое обновление ярлыков из текстового поля - PullRequest
0 голосов
/ 14 февраля 2012

У меня есть метка с максимальной длиной 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 голосов
/ 14 февраля 2012
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;
...