首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在wxTextctrl中实现字符限制

如何在wxTextctrl中实现字符限制
EN

Stack Overflow用户
提问于 2013-04-09 16:33:16
回答 1查看 1.4K关注 0票数 2

我想知道如何实现wxTextCtrl“多行”样式的文本字符数限制。

我需要: 1)当限制达到时阻止用户输入(只需保持在限制范围内的字符)。2)当用户输入或粘贴到字符串的任何位置时,将光标保持在正确的位置(就在插入字符串之后),并确保1)

例如,当我在wxtextctrl中输入时,我将数字限制在10::

1)我可以输入,直到字符数达到10,然后我不能做任何插入(但我可以删除一些字符,然后输入)。例如:我可以输入1234567890

( 2)如果字符数未达到极限,则可以在存在文本的任何位置输入或粘贴一些字符,直到达到极限。例如:我输入1234,然后在退出文本中插入2到3之间的34567890,结果是1234567834,光标就在8后面。

我该怎么做?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-04-09 16:37:54

只需使用wxTextCtrl::SetMaxLength方法(只在2.3.2版本之后才可用,请注意)

编辑:上面的解决方案不适用于GTK+。如果在这种情况下,则必须编写一个扩展wxTextCtrl并执行所需操作的类。要做到这一点,一个可能的办法是:

  1. 重写SetMaxLength函数以在类的属性中保存最大长度
  2. 处理EVT_TEXT(id, func)事件。在处理程序中,如果达到最大长度,则开始忽略输入(您需要弄清楚如何实现);如果低于最大长度,则再次接受输入。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15907518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档