2
我在一個項目上工作。我有文本框和TextChanged事件,我將文本更改爲upperCaseTextChanged事件如何確定發生了什麼變化
txt.ToUpper();
之後,selectionStart從頭開始。我將其更改爲textbox.text.length。
如何確定更改?我想將selectionStart移動到用戶在文本中進行更改的位置。
我在一個項目上工作。我有文本框和TextChanged事件,我將文本更改爲upperCaseTextChanged事件如何確定發生了什麼變化
txt.ToUpper();
之後,selectionStart從頭開始。我將其更改爲textbox.text.length。
如何確定更改?我想將selectionStart移動到用戶在文本中進行更改的位置。
將以前的文本存儲在變量中,例如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;
}
}
}
}
嘗試在選擇更改上使用上面的代碼。
這真的很脆弱。 (例如,粘貼時)。當文本剛剛添加完時,它也會中斷。 – Ryan
我也想到了這一點,但我有每頁3-20文本框。 – eomer
對不起。但是我沒有把代碼粘貼到這裏寫下來...... :)沒有看到指向代碼段的光標出錯了。感謝您的更正:) – Anobik