代码之家  ›  专栏  ›  技术社区  ›  Alan Gorsuch

mfc CEdit我应该什么时候进行验证?

  •  1
  • Alan Gorsuch  · 技术社区  · 7 年前

    背景:我被调到我们公司的一个新开发小组,他们的做法是按enter键,也就是说他们在CEdit(mfc对话框)上进行验证。然而,我来自.net,特别是WinForms,其中有 Validated Validating

    我应该按照他们的做法(按回车键)吗? 或者我想用的是 EN_KILLFOCUS (哪些与上述事件密切相关)?或者两者都不正确,是否有更适合验证的事件?

    我需要你的建议,因为如果我的合作开发人员是被询问的人,他们都会立即说,我应该在按下enter键后处理验证。非常感谢。

    3 回复  |  直到 7 年前
        1
  •  2
  •   xMRi    7 年前

    即使在我的公司,我们也有两个政党。

    乙方表示:信息必须尽早验证。我认为当每个值几乎独立时,这种方法是可以的。在这种情况下,您在EN\u更改或EN\u KILLFOCUS时检查所有数据,并禁用OK按钮,直到所有数据都有效。

    第二种方法的缺点是,在输入数据时,您必须向用户提供更多信息,以指导用户更正数据。第一种方法可以在一条错误消息中解释问题。

    我在程序中使用这两种方法。在大多数情况下,我们使用第1种方法,因为我们发现,一条包含详细信息的全面错误消息更容易维护,用户也更容易理解,因为当用户看到一个对话框时,他们无法找到一个启用的OK按钮。。。

    但这个答案和问题往往是基于意见的。

        2
  •  0
  •   rrirower    7 年前

    无论您决定做什么,都应该尽量减少对用户工作流程的任何干扰。同时,您需要与用户对验证行为的期望保持一致。不要让你的偏见影响对话行为,从而导致用户混淆,或者额外处理对话。最重要的是要记住,无论你采取什么方法,都要保持一致。

        3
  •  -1
  •   PrashanthBC    7 年前

    在我看来,EN_KILLFOCUS是一个更好的选择,因为如果用户不按enter键并按tab键转到下一个控件,如何验证?您仍然可以与同行讨论这一点,并得出结论,哪一个地方更适合处理验证。