1

环境

  • Windows XP x32 Visual Studio 2005 标准版
  • Honeywell Dolphin 9500 运行 Windows Mobile 2003 (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# 开发非常陌生,欢迎,不恳求,任何我能得到的反馈/批评。

此外,如果需要更多信息,请告诉我,我会尽快将其包括在内。

谢谢!

4

2 回答 2

1

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

于 2011-03-31T19:48:55.607 回答
0

我刚刚切换到“模式”编辑设计并在“完成编辑”时返回焦点。

于 2011-04-11T17:27:52.563 回答