我在窗體上有一個帶有自動完成功能的.NET TextBox。該窗體還定義了AcceptButton和CancelButton。如果我嘗試使用Enter鍵提交建議或使用Esc關閉下拉列表,我的表單將關閉。 如何防止此行爲?TextBox自動完成和默認按鈕
5
A
回答
2
不分配的AcceptButton和CancelButton表單屬性。在按鈕OnClick事件中設置DialogResult。
0
而不是接受和取消按鈕,你可以去下面的辦法:
- 設置的KeyPreview屬性的形式爲true。
處理好的KeyDown事件的形式,在處理方法,你可以有類似於下面的代碼
switch (e.KeyCode) { case Keys.Enter: { if (!txtAuto.Focused) { Save(); } break; } case Keys.Escape: { if (!txtAuto.Focused) { Close(); } break; } }
2
簡單的方式事情是清除的AcceptButton和CancelButton性質當你在自動完成的文本框中:
public Form1()
{
InitializeComponent();
txtAuto.Enter +=txtAuto_Enter;
txtAuto.Leave +=txtAuto_Leave;
}
private void txtAC_Enter(object sender, EventArgs e)
{
AcceptButton = null;
CancelButton = null;
}
private void txtAC_Leave(object sender, EventArgs e)
{
AcceptButton = btnOk;
CancelButton = btnCancel;
}
0
另一種選擇是獲得當按下Enture /返回執行驗證自己的自定義TextBox類:
public class MyTextBox : TextBox
{
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Enter || keyData == Keys.Return)
{
// Perform validation here
return true;
}
else
return false;
}
}
相關問題
- 1. jquery自動完成默認
- 2. 在默認值「編輯」按鈕上應用Jquery自動完成
- 3. 自動完成和刪除默認值
- 4. 默認相機活動未完成按OK按鈕按
- 5. Android Mediacontroller上的默認完成按鈕
- 6. UiApp TextBox自動完成
- 7. 默認角度自動按下按鈕
- 8. 自動完成搜索默認值
- 9. 自動完成:搜索默認術語
- 10. 來自MDB的TextBox自動完成
- 11. 表格自動完成按鈕
- 12. 完全格式化默認按鈕
- 13. textbox codeigniter中的自動完成值
- 14. 確認UITextview自動完成
- 15. 默認按鈕 - Vb.NET
- 16. 如何指定AcceptsReturn引用的TextBox的默認按鈕?
- 17. TextBox默認模板
- 18. 讓XP自動「按下」對話框上的默認按鈕
- 19. 自定義引導默認按鈕
- 20. jQuery自動完成和後退按鈕的行爲?
- 21. 搜索建議API和自動完成TextBox的
- 22. 觸發Android按鈕默認動畫
- 23. 不需要的默認按鈕動畫
- 24. Visual Studio默認自動完成使用系統類型名稱
- 25. 我可以使自動完成到Android的默認搜索欄?
- 26. FlashDevelop - 更改自動完成類的默認選擇
- 27. VS2010 with SP1 intellisense更改了自動完成默認值?
- 28. 如何防止jQueryUI自動完成的默認鍵盤交互?
- 29. jQuery UI /自動完成 - 如何更改默認變量名稱?
- 30. UITextView的默認自動完成建議發生了什麼?
形式的KeyDown事件不會被解僱。 – Zhenya 2009-07-02 12:54:25