如何在文本框上增加文本选择

时间:2019-06-13 18:05:57

标签: c# winforms

我需要用格式完成Visual Studio上的程序,我有一个文本框(txtUser),另一个文本框(txtKerko)和一个按钮(btnKerko)。所以程序是这样的,用户在txtUser上写一些文本,然后在txtKerko上写任何单词或文本,当单击btnKerko时,应该在txtUser上选择在txtKerko上写的单词,如果所有单词中有多个应该在每次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 个答案:

答案 0 :(得分:2)

是的,如果您想要一个一个地选择单词,则可以这样做。您可以使用以下代码:

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方法的第二个参数告诉您开始从该第二个参数值中查找索引。