单击文本框时,窗体失去焦点和摇杆开关键向下事件处理程序

时间:2011-03-31 19:28:51

标签: c# winforms focus pocketpc

环境

  • Windows XP x32 Visual Studio 2005标准版
  • 运行Windows Mobile 2003的Honeywell Dolphin 9500(Pocket PC 2003)
  • .NET Compact Framework 1.0 SP3和.NET Framework 1.1
  • 使用VC#

目标

我的表格上有一堆标签和文字框。此表单由“工作订单”对象填充,并在设备上按下左侧或右侧硬件摇杆按钮时,使用下一个或上一个“工作订单”重新填充。我想允许用户编辑一个组合/文本框,然后将焦点放回到表单上,以便表单的KeyDown事件处理程序优先。


问题

在初始应用程序加载时,当窗体具有焦点时,摇臂开关功能完美,用户可以通过按下硬件左或右按钮来索引工作订单。当用户选择文本/组合框来编辑值时,表单失去焦点,组合/文本框的KeyDown事件优先。


问题

如何强制控件将焦点返回到表单对象而不会阻止用户编辑值?


我尝试过的事情

  • 我尝试使用LostFocus()事件处理程序设置每个控件,该处理程序仅包含以下行:this.Focus(),以便在当前控件失去焦点后将焦点返回到表单。但是,我“点击”了,无法控制失去焦点。

代码

在我过去的问题中,我总是将代码放在friendpaste.com文档中,因为自动生成的表单代码使文档有点冗长。如果代码需要在正文中,请告诉我,我会将其粘贴到此处。否则,代码位于下方的朋友粘贴链接。

http://friendpaste.com/CJ8CblLebHRXqA7UMLyvc


另外...

随意批评您出于任何原因看到的任何代码,但最好将其作为对问题的评论,而不是将该主题保留在主题上的答案。我是一名新的程序员,我对Pocket PC Visual C#开发很新,欢迎,不要求任何反馈/批评,我可以掌握。

此外,如果需要进一步的信息,请告诉我,我会尽快将其包含在内。

谢谢!

2 个答案:

答案 0 :(得分:1)

重写ProcessCmdKey()方法或将表单的KeyPreview属性设置为true。

答案 1 :(得分:0)

我刚刚切换到“修改”的编辑设计,并在“完成编辑”时返回焦点。