`
dqifa
  • 浏览: 116325 次
社区版块
存档分类
最新评论

过滤wxTextCtrl控件输入的两种方法

 
阅读更多

以下两种方法实现wxTextCtrl只接收0-9的数字.

1. 使用wxTextValidator()函数

#include <wx/wx.h>

class MyApp:public wxApp
{
    public:
        virtual bool OnInit();
};

IMPLEMENT_APP(MyApp)

class MyFrame:public wxFrame
{
    public:
        MyFrame(const wxString& title);
};

bool MyApp::OnInit()
{
    MyFrame* myframe = new MyFrame("HelloWorld");
    myframe->Show();

    return true;
}

MyFrame::MyFrame(const wxString& title):wxFrame(NULL,-1,title)
{
    wxTextCtrl* text = new wxTextCtrl(this,wxID_ANY,"",wxDefaultPosition,wxDefaultSize,0,wxTextValidator(wxFILTER_DIGITS));
}

2. 从wxTextCtrl派生出新类,在新类中修改OnChar()函数.

#include <wx/wx.h>

class MyApp:public wxApp
{
    public:
        virtual bool OnInit();
};

IMPLEMENT_APP(MyApp)

class MyFrame:public wxFrame
{
    public:
        MyFrame(const wxString& title);
};

class MyTextCtrl:public wxTextCtrl
{
    public:
        MyTextCtrl(wxWindow* parent);
        virtual void OnChar(wxKeyEvent& event);
};

bool MyApp::OnInit()
{
    MyFrame* myframe = new MyFrame("HelloWorld");
    myframe->Show();

    return true;
}

MyFrame::MyFrame(const wxString& title):wxFrame(NULL,-1,title)
{
    MyTextCtrl* text = new MyTextCtrl(this);
}

MyTextCtrl::MyTextCtrl(wxWindow* parent):wxTextCtrl(parent,wxID_ANY)
{
    Connect(wxEVT_CHAR,wxKeyEventHandler(MyTextCtrl::OnChar),NULL,this);
}

void MyTextCtrl::OnChar(wxKeyEvent& event)
{
    const int keyCode = event.GetKeyCode();

    if (keyCode >= '0' && keyCode <= '9')
    {
        // Accept a number
        event.Skip();
    }

    // Accept some other keys
    switch (keyCode)
    {
        case WXK_BACK :
        case WXK_LEFT :
        case WXK_RIGHT :
        case WXK_TAB :
        case WXK_DELETE :
        case WXK_END :
        case WXK_HOME :
            event.Skip();
        break;
    }

}

分享到:
评论

相关推荐

    Javascript判断是否有ActiveX控件的两种方法

    Javascript判断是否有ActiveX控件的两种方法,在网页中使用ActiveX控件的添加方法。

    车牌号码输入控件,通过点击输入

    首先,车牌号码输入控件是一种优化用户输入车牌号码的交互方式。传统的文本框输入可能需要用户手动键入所有字符,而这种控件则提供了一种更加直观和便捷的交互模式。用户只需点击预设的简称、字母或数字,即可快速...

    MFC Edit控件输入过滤例子

    MFC EditControl控件实现字符输入过滤。例子中包含了Edit输入Window文件名时,对非法字符的过滤;仅输入正数、正负数;以及自定义添加多个字符的过滤。对于其他字符过滤设计,可参考该demo思路。VS2010 Unicode

    vb6截图的两种方法(用line控件和shape控件,类似于qq截图)

    在VB6(Visual Basic 6)中实现截图功能,我们可以利用两种主要方法:一是通过Line控件,二是通过Shape控件。这两种方法都是基于Windows API(应用程序接口)来捕获屏幕上的图像,然后进行处理,以达到类似QQ截图的...

    实现EDIT控件限制输入

    - 创建自定义的EDIT控件类,继承自`CEdit`(MFC)或`CEdit`(ATL/MFC),并在其中添加自己的逻辑,这样可以在控件级别控制输入行为,比如过滤非法字符、格式化输入等。 5. **使用控件属性**: - 对于Windows API...

    U8过滤栏目列表控件开发手册

    综上所述,《U8过滤栏目列表控件开发手册》详尽地介绍了该控件的开发和使用方法,为开发者提供了实现个性化过滤逻辑的工具和指南,从而提升系统的用户体验和数据处理效率。通过理解和掌握这些知识点,开发者能够更...

    数据关联输入拼音过滤控件 DataHint

    一般这种情况有两种解决办法,一种是用下拉列表框提供输入的选择,这种方法有很大的缺点:需要用户点击鼠标,弹出下拉框选择输入,比较麻烦;另外如果数据较多,用户选择数据的时间要超过了输入的时间,反而降低了...

    C#实现回车光标自动跳到下一个控件的几种方法

    同时,也可以扩展此方法以支持其他类型的控件,比如ComboBox或其他支持用户输入的控件。 在实际应用中,你可能还需要考虑如何处理窗体的边缘情况,例如当按下回车键时,如果已经是最后一个可聚焦的控件,那么应该...

    支持过滤功能的DataGridView网格控件C#源代码

    总的来说,这个资源为C#开发者提供了一种扩展标准DataGridView控件的方法,通过增加过滤功能,使得数据管理更加高效。通过分析和学习提供的源代码,开发者不仅可以了解如何实现这一特性,还可以借鉴和应用到自己的...

    数字输入控件

    在计算机编程领域,数字输入控件是一种常见的用户界面(UI)元素,用于允许用户输入或选择数字值。自定义控件则是开发人员根据特定需求创建的、具有独特功能和外观的控件,它们通常扩展了标准库中提供的基础控件。在...

    【VB.NET】WinForm扩展TextBox和ComboBox控件:仿百度搜索框(输入文本智能模糊提示说明、自动匹配过滤)

    ComboBox控件可以输入文本...该自定义控件利用visual studio2017开发,使用VB.NET语言对TextBox和ComboBox进行了改写,实现类百度搜索框似的输入文本智能模糊提示说明、自动匹配过滤功能。具体效果请参阅本人相关博文。

    C#各类控件的输入输出(思维导图、知识点分析、案例解析) c#经典案例.pdf

    C#控件有很多种,包括数据显示控件、文本编辑控件、RichTextBox控件、MaskedTextBox控件等。 1. 数据显示控件:DataGridView控件 DataGridView控件是C#中最常用的数据显示控件。它可以显示数据表格,并提供了许多...

    FilterTextBox控件的使用方法

    在.NET框架或者Windows Forms开发中,`FilteredTextBox`控件是一种自定义的文本框控件,主要用于限制用户输入的数据格式,以确保输入的数据符合特定的要求。这个控件常常被用在需要用户输入特定类型信息的场景,比如...

    神器ocx控件方法查看器.

    由于这两种文件的结构和用途与OCX控件不同,所以它们的方法和功能无法通过这个工具进行查看。 "ocx函数查看.exe"很可能是该查看器的主程序,用户可以直接运行来启动工具。而"ocx控件方法查看器.txt"可能包含了软件...

    VC增强Edit控件为日期输入控件

    Edit控件是其中最基础的一种,通常用于接收用户的文本输入。然而,有时我们希望用户能输入特定格式的数据,比如日期。在这个场景下,将普通的Edit控件增强为日期输入控件就显得很有必要。本文将详细介绍如何在VC++中...

    C# ComboBox(winform) 显示多列 输入自动过滤

    总之,要实现"C# ComboBox(winform) 显示多列 输入自动过滤"的功能,需要对原生ComboBox控件进行扩展,添加多列显示的绘制逻辑和输入过滤的处理机制。通过这样的自定义,我们能够提供更丰富的用户体验,同时增强应用...

    VB程序运行时用鼠标拖动改变控件大小的2种方法

    ### VB程序运行时用鼠标拖动改变控件大小的两种方法 在Visual Basic(简称VB)编程中,实现用户界面的交互性是非常重要的一个环节。本文将详细介绍如何实现在程序运行过程中通过鼠标拖动来改变控件大小的功能,具体...

    可输入的下拉框 控件

    以下是一种可能的实现方法: 1. 创建用户控件: 首先,创建一个新的ASP.NET用户控件文件(.ascx),在该文件中,我们将组合一个TextBox和一个DropdownList。TextBox用于用户输入,DropdownList用于显示预设选项。...

    QT(5.6) 实现IP地址输入控件

    因为一个项目需要用IP地址输入控件,QT下又没有可以直接用于输入IP这种字符串的控件,网上也找了很久,大多数都是3个QlineEdit拼出来,不合我意,所以 只能自已琢磨一个出来了.功能: 验证输入数字在正确范围内 , 连续...

    Activex密码输入控件

    2. **设计控件接口**:定义控件的属性、方法和事件,这些都是其他应用程序与控件交互的接口。 3. **实现控件逻辑**:在MFC类中编写代码,实现密码输入和验证的逻辑。 4. **注册控件**:编译完成后,需在目标系统上...

Global site tag (gtag.js) - Google Analytics