2012-04-02 51 views
0

如果我們可以通過按下按鈕或者等同按下來移動到上一行的開頭,那麼當使用箭頭鍵時,文本框會更快地導航。如果您在使用HTML輸入或textarea的網頁中嘗試此功能,此工作正常。但對於Windows窗體文本框控件它與記事本有相同的行爲。當您按下或向上箭頭鍵時,它會從整個文本的結尾或開始移動光標。使用向上和向下箭頭鍵突出顯示文本時,它也應該有效。像在HTML輸入字段中一樣在WinForm文本框中使箭頭鍵功能正常工作?

有關如何在C#或vb.Net中實現這一點的任何想法?提前致謝。

這裏是當前工作突出,但僅適用於Shift +向下鍵:

if ((keyData == (Keys.Shift | Keys.Down))) { 
if (ctl is TextBoxMaskBox) { 
    var edit = ctl as TextBoxMaskBox; 

    int selectionLength = edit.MaskBoxSelectionLength; 
    int remTextLength = edit.MaskBoxText.Length - edit.MaskBoxSelectionLength; 
    string remText = edit.MaskBoxText.Substring(selectionLength, remTextLength); 

    if (remText.IndexOf(Environment.NewLine) == -1) { 
     edit.MaskBoxSelectionLength = edit.MaskBoxText.Length; 
     return true; 
    } 
} 

}

+0

@Yahia,編輯了上述問題和當前工作代碼已提供。 – pogs 2012-04-02 07:44:07

回答

0

您在這裏談論兩個不同的平臺。果然,無論您在textarea的最後一行中,按下DOWN的確會將您移動到該行的末尾。

我猜想,大多數人會使用結束鍵進入當前行的末尾,或按Ctrl +獲得整個文本輸入區的末尾。

這對於Web和Windows應用程序是通用的,我會質疑有多少人甚至知道特定於Web的行爲。我懷疑大多數人會將他們的期望從Windows轉移到網上,並繼續使用結束等。

+0

我們的客戶用戶希望這種功能與HTML輸入具有相同的行爲。 – pogs 2012-04-02 07:47:53

+0

我不知道他們爲什麼要這樣做。我的想法是,他們習慣了HTML輸入網頁控制,或者因爲我們的客戶端是瑞典語,也許對他們很重要,或者使用瑞典語鍵盤按Ctrl + End或Shift + End很困難。我還沒有嘗試瑞典鍵盤。 – pogs 2012-04-02 07:54:24