DEL 或 BACKSPACE 未在被覆盖的 Windows::Forms::MaskedTextBox::OnKeyP
DEL or BACKSPACE not processed on overridden Windows::Forms::MaskedTextBox::OnKeyPress
我正在构建一个只需要接受某些类型的字符的自定义MaskedTextBox
。我用以下代码覆盖了原始类:
ref class CustomMaskedTextBox : System::Windows::Forms::MaskedTextBox
{
public:
CustomMaskedTextBox();
virtual void OnKeyPRess(System::Windows::Forms::KeyPressEventArgs^ e) override;
};
CustomMaskedTextBox::CustomMaskedTextBox(void) {}
CustomMaskedTextBox::~CustomMaskedTextBox(void) {}
void CustomMaskedTextBox::OnKeyPress(System::Windows::Forms::KeyPressEventArgs^ e)
{
if ((e->KeyChar >= 'A' && e->KeyChar <= 'Z') ||
(e->KeyChar >= '0' && e->KeyChar <= '9') ||
e->KeyChar == '*' ||
e->KeyChar == '-' ||
e->KeyChar == '/' ||
e->KeyChar == '.' ||
e->KeyChar == ' ' ||
e->KeyChar == (char) System::Windows::Forms::Keys::Back ||
e->KeyChar == (char) System::Windows::Forms::Keys::Delete)
{
e->Handled = false;
}
else
{
e->Handled = true;
}
}
由于某种原因,无法识别 DEL 和 BACKSPACE 键,在对象上发送文本时不起作用。
感谢帮助使 DEL 和退格键工作。
我遇到了同样的问题。你的操作系统是什么(windows/linux/mac)?我认为这个问题与编译器有关。我最终使用Qt来识别这些键(Qt::Key_Delete
Qt::Key_Backspace
)。
相关文章:
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 在Linux for Windows上编译C++代码时出错
- 在Windows上用C++裁剪HBITMAP
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 当我编译webrtc服务器时,Windows上只支持clang-cl
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- Windows/Cygwin - 不能使用 pybind11 - 犯错误
- Windows 10-使用gtkmm-3.0库和g++[包括再现]的分段故障
- 在Windows中以.exe的形式运行c++
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- 无法在windows控制台中为C++程序提供必要的输入
- 在Windows中查找扬声器输出的当前音量级别
- Windows.h与GLFW.h的接口
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- DEL 或 BACKSPACE 未在被覆盖的 Windows::Forms::MaskedTextBox::OnKeyP
- 使用javascript ActiveX对象触发System.Windows.Forms dll
- 可视化C++ GUI,无需"Windows Forms"或"Framework"
- 带有System.Windows.Forms的MFC ActiveX控件