【发布时间】:2014-07-22 22:31:20
【问题描述】:
我有一个UserControl,其中包含一个按钮和一个文本框。用户应该再次填写文本框并单击按钮 - 以便将数据发送到表单并隐藏用户控件,或者在文本框上按 Escape - 以便表单知道用户已取消进度。
问题是当用户按下文本框上的选项卡时,用户控件被离开(并且之后隐藏 - 由于离开时隐藏用户控件的策略),因此更近的数据被发送到表单,用户也没有取消进步。
所有用户控件、文本框和里面的按钮都将它们的TabStop 设置为 false,但用户仍然可以通过按 Tab 键返回表单。
如何阻止此用户控件上的选项卡功能?我想制定规则:点击按钮或按 Escape,没有标签失控,就是这样。
【问题讨论】:
-
那是非常糟糕的 UI 设计。您不应该阻止用户以熟悉的方式使用键盘。您应该重新考虑如何处理输入。
-
我刚刚在我的答案中发布了一个链接,其中包含一个示例,其中展示了如何几乎完全满足您的需求。
-
@xxbbcc:我同意,这些东西最好按预期保留,甚至加以利用。使用与 UI 指南相差太远的软件,受损者可能会遇到巨大的麻烦。不过,他想要一个答案。谁知道他为什么需要这个?
-
@xxbbcc 我知道这是不可接受的方式,但不幸的是,我的客户是一家为实际上是老年人和传统人的人构建应用程序的公司,所以他们想要自己的做事方式:)
标签: c# user-controls tabstop