Winform取消用户按下键盘的事件

1. 有时候针对某个控件,想取消它的所有键盘按下事件,

    只需要为这个控件绑定keyDown事件即可,然后处理的代码如下:

    private void txtDeviceName_KeyDown(object sender, KeyEventArgs e)
   {
         e.Handled = true;//这行是关键,实际上还是捕获所有事件,只是不作处理罢了
    }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WinForm中,我们可以通过自定义控件来添加自定义属性和事件。下面是一个示例: 1. 创建一个自定义控件类,并继承自相应的基类(例如`UserControl`)。 2. 在自定义控件类中,定义需要的自定义属性和事件。 3. 在控件的构造函数中,初始化属性和事件。 4. 在控件的绘制方法中,根据属性值来绘制控件的外观。 5. 在控件的事件处理方法中,处理相应的事件逻辑。 下面是一个示例代码: ```csharp using System; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; public class LEDControl : UserControl { private Color _color; private bool _isOn; // 自定义属性 [Category("LED")] [Description("LED的颜色")] public Color LEDColor { get { return _color; } set { _color = value; Invalidate(); // 重绘控件 } } // 自定义事件 public event EventHandler LEDClicked; public LEDControl() { _color = Color.Red; _isOn = false; // 初始化控件 SetStyle(ControlStyles.ResizeRedraw, true); DoubleBuffered = true; Size = new Size(50, 50); // 绑定点击事件 MouseClick += LEDControl_MouseClick; } protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); // 绘制LED的外观 using (SolidBrush brush = new SolidBrush(_isOn ? _color : Color.Gray)) { e.Graphics.FillEllipse(brush, ClientRectangle); } } private void LEDControl_MouseClick(object sender, MouseEventArgs e) { _isOn = !_isOn; Invalidate(); // 重绘控件 // 触发自定义事件 LEDClicked?.Invoke(this, EventArgs.Empty); } } ``` 使用自定义控件时,可以在设计器中直接拖拽控件到窗体上,并通过属性窗口设置自定义属性。同时,可以在代码中订阅自定义事件,并在事件处理方法中编写相应的逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值