2016-05-19 30 views
3

我在WPF中有一個像這樣的字符串的文本框早上好,總統先生。我的脫口秀是絃樂的開始。當我按Control + Right時,脫字符號會移至早上,但我想讓它回想起來。所以當我按下Ctrl + Right時,插入符號從移到之前。如何在文本框(WPF)中按Ctrl +右鍵選擇2個單詞?

我該怎麼做?

+0

改爲使用'KeyPress'。 :-) –

+0

是否總是選擇2個單詞還是隻在這種情況下? – ViVi

+0

@ vishakh369:我只想在使用Ctrl + Right時發生這種情況,我使用PreviewKeyDown事件,WPF中沒有KeyPress事件。 C#中沒有脫字符號索引。 –

回答

2

好問題。 +1。

但是恐怕沒有默認方式,當你按下Ctrl + Right時,文本框會選擇2個單詞。

唯一可能的解決方案是,因爲它需要對非字符鍵來處理的KeyDownPreviewKeyDown事件並找到白色空間索引,並使用下面的代碼將其移動到所述第二白空間

textBoxName.Select(0, textBoxToHighlight.Text.Length); 

這是您可以使用的唯一可能的解決方案。在其他語言如日語中,您可以使用條件語句手動將其移動到第一個空格。也許你需要爲每種與英語不同的語言來定義它。

+0

謝謝。但是我不知道如何移動到第一個空白區域,因爲日文沒有空白區域。文本框可以自動識別下一個單詞來停止插入。 –

+0

除非你有一些常見的**第一個字母**或什麼的,你怎麼能找到每個單詞。把自己當成一個不懂日語的人。是否有可能將日語單詞與句子分開。同樣的邏輯也在這裏。將CLR視爲這樣一個人。對於英語他可以輕鬆識別空間。但是,如果這種情況不存在,那麼實現這樣的行爲是不可能的。 – ViVi

0

簡單的蛋糕食譜到你正在努力實現

while key is pressed: 
    move the caret to the the next word. 
end while 

,其中關鍵是Ctrl + right arrow什麼。要實現這種行爲,請查看KeyPress事件。

+0

問題是如何將脫字符移到下一個單詞。具體來說,我正在處理日語,所以我找不到空白來檢測下一個單詞。這就是爲什麼我想按一次鍵(Ctrl + Right)一次,但我需要它激活2次。 –

+0

在_日語_中,什麼_symbol_標識下一個單詞?在你的例子中,你使用了英語,這就是爲什麼我使用英語。 –

+0

我認爲文本框可以自動識別文字邊界。如果我輸入「日本の醫療政策の概要と基本情報」,按Ctrl +右鍵,就會變成這樣的「日本の醫療政策の概要と基本情報」。每個白色空間都是脫字符號停止的位置,我希望得到它(如當前脫字符號索引的下一個停止位置)。 –

相關問題