vb.net - 限制输入到组合框时消耗的 Ctrl + V KeyEventArgs 和 KeyPressEvent
问题描述
我有一个组合框,我需要限制用户输入以仅允许以下字符:
- 字母数字键 (aZ, 0-9)
- 句点、正斜杠、逗号 (./,)
我还需要防止在此组合框中使用 Enter/Return 键。
目前,这是通过 KeyDown 和 KeyPress 事件的组合完成的:
Public Class frm
Dim x As KeyEventArgs
Private Sub cb_KeyDown(sender As Object, e As KeyEventArgs) Handles cb.KeyDown
If e.KeyCode = Keys.Enter Then
e.SuppressKeyPress = True
End If
End Sub
Private Sub cb_KeyPress(sender As Object, e As KeyPressEventArgs) Handles cb.KeyPress
If Char.IsLetterOrDigit(e.KeyChar) OrElse Char.IsWhiteSpace(e.KeyChar) Then
e.Handled = False
ElseIf e.KeyChar = "." OrElse e.KeyChar = "/" OrElse e.KeyChar = "," Then
e.Handled = False
Else
e.Handled = True
End If
End Sub
End Class
问题是这会阻止默认的复制、剪切和粘贴行为(CTRL+C、CTRL+X、CTRL+V)起作用。
CTRL 键永远不会触发 KeyPress 事件,所以我真的不明白为什么它似乎被静默处理并且从未传递回默认行为发生的表单。
我已经KeyPreview = True
定了。
解决方案
推荐阅读
- idl - IDL/GDL:功能:标量下标超出范围 [>].e (61)
- javascript - 我已经看到此代码以防止在页面重新加载时重新提交表单
- javascript - 减少单选输入值的进度条点击
- html - animate.style 是否支持悬停,因为我正在尝试悬停动画
- c++ - 当链接到构建动态库时,静态库中标记为 __visibility__("default") 的符号会发生什么?
- vue.js - 如何存储具有不同到期时间的 oauth2 刷新令牌列表?
- html - 如何使所有内部在顶部和底部都有边框?
这是我第一次使用
<table>
,所以我不知道如何在表格内添加填充th
并使其在顶部和底部连接填充HTML
<div class="order-list"> <h3 class="order-tittle">Ваш Заказ</h3> <table class="table"&g
- swift - 从列表中删除项目行 - SwiftUI
- redirect - Windows 2012R2 RDP 上的 Evince 应用程序未打印
- laravel - 删除望远镜条目 Laravel 8