Как сделать шаг выделения текста в текстовом поле - PullRequest
1 голос
/ 13 июня 2019

Мне нужно завершить программу на Visual Studio с формами, у меня есть текстовое поле (txtUser), другое текстовое поле (txtKerko) и кнопка (btnKerko).Таким образом, программа работает следующим образом: пользователь пишет некоторый текст в txtUser и пишет любое слово или текст в txtKerko, и когда щелкает btnKerko, это слово, написанное в txtKerko, должно быть выбрано в txtUser, если все слова содержат более одного словадолжны быть выбраны на каждом клике btnKerko.Это почти готово, но я не мог выполнить часть, когда есть больше чем одно слово, чтобы увеличить одно за другим.Это код события для btnKerko:

private void BtnKerko_Click(object sender, EventArgs e)
        {
            if (txtUser.Text.Contains(txtKerko.Text) == true)
            {
                txtUser.Focus();
                string teksti = txtUser.Text;
                txtUser.SelectionStart = teksti.IndexOf(txtKerko.Text);
                txtUser.SelectionLength = txtKerko.TextLength;                              
            }
            else
            {
                MessageBox.Show("Nuk u gjet");
            }
        }

1 Ответ

2 голосов
/ 13 июня 2019

Да, вы можете сделать это, если хотите выбрать слово одно за другим. Вы можете использовать этот код:

int lastIndex = 0;
private void BtnKerko_Click(object sender, EventArgs e)
{
    txtUser.Focus();
    int index = txtUser.Text.IndexOf(txtKerko.Text, lastIndex);

    if (index != -1)
    {
        lastIndex = index + 1;
        txtUser.SelectionStart = index;
        txtUser.SelectionLength = txtKerko.TextLength;
    }
}

Как видите, переменная lastIndex содержит последний выбор при каждом нажатии кнопки. Полагаю, вы знаете, что второй параметр метода IndexOf указывает начать поиск индекса по значению этого второго параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...