【问题标题】:Handling KeyDown for Label and PictureBox处理 Label 和 PictureBox 的 KeyDown
【发布时间】:2011-08-21 00:16:21
【问题描述】:

我正在使用 PictureBox 在主对话框窗体中放置和重新定位(移动)一些图片。 我希望能够在按下删除键时删除图片。 我找不到列出的控件的键盘处理事件。

好吧,我可以对 Form 使用 KeyDown 并检查 PictureBox 是否获得焦点,但它看起来很难看。

可以看到它有事件http://msdn.microsoft.com/en-us/library/system.windows.forms.picturebox.keydown.aspx

但实际上并没有……

有什么想法吗?

【问题讨论】:

    标签: winforms picturebox keydown


    【解决方案1】:

    这是一个不那么微妙的暗示,这些控件都无法获得焦点。键盘事件只会为可以聚焦的控件生成。 TextBox 是最终的例子,但还有很多其他的例子。它们有一种向用户指示焦点的方法,通常使用虚线焦点矩形、颜色或插入符号。

    但不是 PictureBox 或 Label,您可以随意点击它们,但它们不会获得焦点,也不会指示。它们只是分别显示图像或文本的小苦工。用户不希望他们做任何有趣的事情。

    我不知道你想给他们什么样的焦点行为,但将不可聚焦控件变为可聚焦控件的示例在 this answer

    【讨论】:

    • 是的,答案正是我所需要的。谢谢。
    【解决方案2】:

    由于图片框无法获得焦点,请查看表单并查看当用户按下 Delete 键时焦点可能(或可能)在哪里。

    确定您希望删除键在表单上的哪些控件(按钮、复选框等,但可能不是文本框),并使用这些控件中的 keydown 事件来采取适当的操作。

    表单的 keydown 事件并不总是按您期望的方式工作,因此在表单的各个控件中使用 keydown 事件可能会更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多