我有一個多行文本框,它不應該接受字母,數字,換行符(回車鍵)和退格鍵。總之,textbox.Text
不應該是可編輯的。但我確實希望文本框接受兩個快捷鍵 - 控制和控制+ R。我可以使文本框不可編輯的一種方法是將其設置爲只讀。但是,文本框不會接受任何按鍵。總之,我的快捷鍵(控制和控制+ R)不會工作(控制+ R)與只讀方法。如何使多行文本框不接受Enter和Backspace
任何人都可以在這方面提供幫助。這就是我必須要做的。
我在這裏可以做的一件事情不是讓文本框爲只讀,然後限制可以在文本框中輸入的字符(字母和數字)。使用此代碼:
private void txtResult_KeyPress(object sender, KeyPressEventArgs e)
{
// only modifier keys, escape, enter, backspace etc is accepted now
e.Handled = !char.IsControl(e.KeyChar);
}
private void txtResult_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control == true)
{
if (e.KeyCode == Keys.R)
{
// do something
}
else
{
//do something
}
}
if (e.KeyCode == Keys.Escape)
{
//do something
}
}
使用此技術,我可以獲得快捷方式(控制和控制+ R)工作。但是這種方法的問題在於Enter和Backspace鍵可以編輯文本框的文本。我如何特別限制從文本框中註冊的Enter和Backspace鍵,但讓Control和Escape?
這不處理問題中所要求的Esc鍵。它也不會阻止文本框被修改。由於您沒有指出按鍵的R鍵是「已處理」,文本框控件仍然會將它們視爲輸入,並鍵入字母R. – 2011-04-12 14:09:48
謝謝。工作。我很感激。是的,由於您沒有包含我想要的'Esc'功能,所以我會做這個小調整,就像@Cody Gray所說的那樣。我想我可以編輯你的代碼來包含它。再次感謝。 – nawfal 2011-04-12 15:56:18
@Cody Gray,是的,這種方法是有效的。文本框不會像你想象的那樣得到字母R.是的,我的文本框仍然不是隻讀的。文本框被完全阻止被修改.. – nawfal 2011-04-12 16:06:11