首页 > 解决方案 > 如何使文本框上的文本选择增加

问题描述

我需要在 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");
            }
        }

标签: c#winforms

解决方案


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

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


推荐阅读