2010-09-21 31 views
1

我正在創建一個類似於應用程序的控制檯,我很想知道阻止用戶編輯以前執行的命令的最佳方法是什麼。現在,我正在使用KeyPressEventHandler來檢查用戶嘗試輸入的位置,並且如果插入符號位於文本框的「提示」部分之外的某個位置,則實際上會忽略它。這完全按照需要運行,對於這樣一個基本要求,它似乎並不是一個理想的解決方案。我是C#的中等新手,所以我不確定可以使用哪些選項,因此請求建議。一個像CLI一樣運行的C#文本框

回答

3

如果你只想寫在最後的命令,這會是一個很好的解決方案,以從輸出不同的輸入,用大MultiLineReadOnlyTextBox輸出和對輸入獨立的單下面一行TextBox

如果這是一個好的解決方案或者不是一個可用性問題,需要對您的應用程序有更廣泛的理解來確定。

+0

我原本是這樣做的,但我不喜歡滾動瀏覽輸出和輸入文本框時的樣子。我也不想處理更長的命令輸入單行texbox,我只是讓它繼續在一行,或者我改變文本框,以便它顯示在多行,並調整在窗口。 我現在想要的是類似於Bash或Windows中的命令提示符。基本上只有一個文本框在輸入時被限制在特定的區域。 – phill 2010-09-21 17:01:17

0

@Phill - 你可以簡單地捕捉每一個用戶施加的按鍵,並且對於每次按鍵操作...

  • 如果它是一個允許鍵(即不向上箭頭),然後用它來打造用戶可見的命令行,如果它是不允許
  • (即向上箭頭),捕捉它(有效地阻止它)

...如果我正確地解釋你的關心 - 我的猜測是,一個「向上箭頭鍵上的「純塊」幾乎可以解決用戶編輯以前的問題狡猾的執行線。

我拋出了這個想法,因爲我不確定我是否正確理解了你要完成的任務。 ^^

+0

我想要完成的幾乎是Windows中的命令提示符或Linux中的Bash。我將捕獲向上箭頭以滾動瀏覽命令的歷史記錄,所以這不是問題,當有人使用鼠標將插入符號設置在輸入行之外的某處時,會發生這種情況。我仍然希望允許選擇這樣可以複製文本,我只是不想允許編輯。問題是,我是否檢查每個按鍵,並說「這是一個編輯,忽略」或「這不會編輯,允許」或者是否有更好的方法來做到這一點。 – phill 2010-09-21 17:09:42

相關問題