我在窗体上有一个带有自动完成功能的.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