2

我正在做一个项目。我有文本框,并通过 TextChanged 事件将文本更改为大写

txt.ToUpper();

之后 selectionStart 从头开始​​。我将其更改为 textbox.text.length 。

如何确定更改?我想将 selectionStart 移动到用户在文本中进行更改的位置。

4

1 回答 1

0

将前面的文本存储在一个变量中,比如说,previousVariable用 初始化null

string prevVal = null;
private void txtSel_TextChanged(object sender, TextChangedEventArgs e)
{
    if(prevVal == null)
    {
        prevVal = txtSel.Text;
    }
    else
    {
        for(int i = 0; i < txtSel.Text.length; i++)
        {
            if(txtSel.Text.Substring(i, 1) != prevVal.Substring(i, 1))
            {
                txtSel.SelectionStart = i+1;
                break;
            }
        }
    }
}

尝试在选择更改时使用上述代码。

于 2013-09-05T13:50:43.687 回答