TextBox中输入字符控制的解决办法

TextBox中输入字符控制的解决办法,第1张

;   我们知道 在C#中 TextBox控件对输入字符的控制有keypress keyup 和keydown事件来使用 但大家也看到了 这几个事件对输入字符的控制都有一定的缺陷 如果 你使用中文输入法 那么很多原来你不希望输入的字符也可以输入进去 这几天做程序的时候 就碰到了这个问题 我的解决思路很简单 既然这三个事件不再起作用 那么我就使用了TextBox控件中时刻能发生的TextChanged事件 以期望在这个事件中作些东西 以达到控制字符的目的 废话就不多说了 我将控制输入字符为数字的代码粘贴出来 希望大家多指正 如果能对你有益的话 我就更happy了         private System Windows Forms TextBox textBox ;   private string text;   public Form ()   {    text = textBox Text;   }   private void textBox _TextChanged(object sender System EventArgs e)   {    int len = text Length;   if(len < textBox Text Length)   {    int index = textBox Text IndexOf(text);    char c = (textBox Text Remove(index text Length))[ ];    if(c CompareTo( ) < ||c CompareTo( ) > )    {    textBox Text = text;    textBox SelectionStart = text Length;    }    }    text = textBox Text;      } lishixinzhi/Article/program/net/201311/15761

Private Sub Form_KeyPress(KeyAscii As Integer)

Print "Ascii: " & KeyAscii & ", 字符:" & Chr(KeyAscii)

End Sub

if (eKeyChar >= '0' && eKeyChar <= '9' || eKeyChar == '' || eKeyChar == 8)

{

eHandled = false;

return;

}

eHandled = true;

只能输入0-9和小数点。

==========

if (eKeyChar == 13)

{

}

判断是否回车

this->setAttribute(Qt::WA_KeyCompression, true);

可是用输入法输入中文后,keyPressEvent进不去

QLineEdit有textChange 信号,关联这个信号,在槽里面可以接受到字符。

没有QLineEdit啊

不用打字啊,字符串用作他用

不用控件输入啊,我只是想获得输入的字符串,不过用你的方法,是不是可以搞一个隐藏的QLineEdit让他获得焦点,不过左右方向键应该会有影响吧

又或者我接收到输入法的字符串,传递给其他窗体;

或者做一个打字练习程序,本来Label里有一些字,打出来的字对比后一样的话就改变那个字的颜色。。。

打字的过程自己实现,你要实现输入法?为什么不直接用QTextEdit呢,你的要求用QTextEdit好像全部能实现吧,接收输入法的字符串, QTextEdit有textChage信号,打字练习,你只要拿label上的字和textEdit上字符进行比较,改变下字体颜色,对的用黑色显示,错的是红色显示,这是可以实现的,你就是想插入,在输入字,在插入,textEdit多可以实现。

keypress是当键盘按下时触发,change是在文本框中的字符串变化时触发

keypress要比change先触发

而且keypress可以用来判断一些非可见字符,如:回车

ch(13)

private

sub

txtsource_keypress(keyascii

as

integer)

if

keyascii=13

then

(判断在textbox里是否按下回车键)

end

sub

keypress在调试的时候比较麻烦,注意一下

因为在KeyPress事件发生时,当前输入的字符尚未在文本框中显示出来啊,所以这个时候文本框的Text属性是不含有当前所输入的字符的(KeyPress是可以人为取消的,就是把KeyAscii参数设为0,这样当前输入字符就会作废,这也就不难理解为什么KeyPress事件发生时文本框内不含当前字符)。

可以考虑改用Change事件,这是在当前输入的字符在文本框显示出来之后才发生的事件

以上就是关于TextBox中输入字符控制的解决办法全部的内容,包括:TextBox中输入字符控制的解决办法、用VB 怎样编写下面这个程序:从键盘上输入字符时,在窗体上显示出所键入的字符和该字符的ASCII码值。、求C# KeyPress 事件中,所有e.KeyChar值的意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9284951.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存