【问题标题】:How to change the Selectable ControlStyle of a button to make it stop recieving focus如何更改按钮的可选控件样式以使其停止接收焦点
【发布时间】:2018-11-02 22:05:13
【问题描述】:

我正在制作一个乒乓球游戏,我有几个按钮可以做不同的事情,我的移动键是 W & S , Up & Down。问题是向上和向下箭头将焦点设置在按钮上并且没有提供适当的移动。我知道让它们成为图片框会解决这个问题,但我真的想使用按钮控件,因为它们看起来更好。表单 KeyPreview 也已设置为 true。

Public Enum Direction { None, Up, Down };
Direction leftDir;

If (e.keycode == keys.Up) leftDir = Direction.Up;
If (e.keycode == keys.Down) leftDir = Direction.Down;

这不会收到条件,因为按键被按钮的焦点集传递了

【问题讨论】:

  • 显示您的代码。
  • 对不起,我没有把它包括在内我不知道看到什么有用
  • 任何可以为我们复制问题的最小代码。
  • 我只有几个按钮和一个向下/向上跟踪 W & S 和 Up & Down 的键。抱歉,它不允许我编辑我的问题,所以我无法添加实际代码
  • Sorry It won’t let me edit my question 只需点击编辑链接。将代码作为文本发布,带有四个空格缩进以进行格式化。

标签: c# winforms button


【解决方案1】:

创建自定义按钮并应用SetStyle 方法。

public ButtonX : Button
{
   public ButtonX
   {
      SetStyle(ControlStyles.Selectable, false);
   }
}

或者通过将焦点转移到另一个控件。例如,如果您的表单中有标签,则在您使用按钮执行某些操作后,只需调用 label.Focus();

【讨论】:

  • 这会改变那个按钮或所有按钮的控制风格吗?
  • 创建自定义按钮类,正如我已经提到的。用这个自定义按钮替换旧按钮。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-29
  • 2019-10-06
  • 2019-08-01
  • 1970-01-01
  • 2021-07-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多