TextChanged事件如何确定改变了什么

时间:2013-09-05 12:36:29

标签: c# .net microsoft-metro

我在做一个项目。我有文本框和TextChanged事件我将文本更改为upperCase

txt.ToUpper();

之后,selectionStart从头开始。我把它改成了textbox.text.length。

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

1 个答案:

答案 0 :(得分: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;
            }
        }
    }
}

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