2011-05-24 82 views
0

當我將文本分配給文本框時,選擇開始屬性爲零 因此光標(插入符號)正在移動到文本框的第一個位置。 如何解決這個問題?如何在vb.net或c#中處理文本框選擇開始屬性

代碼示例

認爲文本框已經有這樣的文字「你好開發商

Dim CurPosition As Integer = TextBox1.SelectionStart 
    'CurPosition=11 (i.e) SelectionStart is 11 (cursor position)' 


    TextBox1.Text = TextBox1.Text.Remove(5, 11) 
    'After Assigning Text the selectionStart is 0 (cursor position)' 

    TextBox1.SelectionStart = TextBox1.TextLength 
    'Here After the selectionstart is 5' 

    TextBox1.ScrollToCaret() 

所以,當我執行此代碼光標上下移動那麼如何解決這個問題。

+0

我真的不知道你在問什麼。根據你的代碼中的評論,它似乎在做我期望你的代碼做的事情。你能澄清問題是什麼嗎? – Tim 2011-05-24 17:50:18

+0

你只需點擊鏈接我清楚地解釋了這個概念。我的問題是什麼,我的要求是什麼。 http://stackoverflow.com/questions/6115199/textbox-keypress-event-using-vb-net-or-c – Balachandran 2011-05-24 18:51:48

回答

0

您的意思是說,您的插入符號出現在文本框中?如果是這樣的話:

Dim CurPosition As Integer = TextBox1.SelectionStart 
'CurPosition=11 (i.e) SelectionStart is 11 (cursor position)' 


TextBox1.Text = TextBox1.Text.Remove(5, 11) 
'After Assigning Text the selectionStart is 0 (cursor position)' 

TextBox1.SelectionStart = TextBox1.TextLength 
'Here After the selectionstart is 5' 

TextBox1.ScrollToCaret() 

TextBox1.Focus() 
+0

謝謝,但這不是我的要求。 – Balachandran 2011-05-24 18:20:30

+0

我的要求是我正在爲我的母語語言開發一個文本編輯器。那就是我正在嘗試使用unicode字符來開發泰米爾文本編輯器。我在那裏按英文字母k的時候,我想替換兩個字符,如「&H0b95」「&H0bcd」。我如何實現這個概念?不管它是否可能。鍵盤事件時的示例代碼e.keychar = chrw(「&H0b95」)&chrw(「&H0bcd」)。 – Balachandran 2011-05-24 18:22:19

+0

對不起,我仍然不完全明白你想做什麼。您是否試圖讓Caret恢復到它在Remove函數被調用之前的位置? – pingoo 2011-05-24 18:26:48

1

我想我並不真的知道你的問題是什麼。

但我想你可以在scrolltocaret()之後再指定selectionstart屬性,或者只是使用select()方法。

相關問題