c# WPF中PreviewTextInput的作用是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
private void This_TextInput (object ,发送方,TextCompositionEventArgs e) ,,,{ ,,,,,string newText =, e.Text; ,,,,,int 数量; ,,,,,if (int.TryParse (e.Text, out 数字),,,,number 祝辞,5) ,,,,,{ ,,,,,,,e.Handled =,假; ,,,,,} ,,,,, ,,,,,{ ,,,,,,,e.Handled =,真的,//(这一行代码非常重要,决定能否显示当前输入的内容) ,,,,,},,,,,, ,,,,, ,,,}
,所以在我们的文本框判断是否是我们需要的结果从而决定是否去显示该字符串的时候,我们需要使用TextInput事件而不是使用TextChanged事件,这里面e.Text是添加的字符,比如用输入法输入“你好吗”时,这个事件会触发三次,e。文本分别为:你,好吗。当然我在第一次使用的时候,用了一种替代的方法,用了TextChanged事件,这里也贴出代码,事实上这是一个很大的错误,当然功能可以完全实现,这里也贴出代码,仅供参考。
private void tb_tempreture_TextChanged (object ,发送方,TextChangedEventArgs e) ,,,,,,,{ ,,,,,,,,,,,string currentText =, this.tb_tempreture.Text; ,,,,,,,,,,,if (! string.IsNullOrEmpty (currentText)) ,,,,,,,,,,,{ ,,,,,,,,,,,,,,,int length =, currentText.Length; ,,,,,,,,,,,,,,,string lastChar =, currentText.Substring (length 作用;1); ,,,,,,,,,,,,,,,Regex Regex =, new 正则表达式(“^[0 - 9]*美元“); ,,,,,,,,,,,,,,,Match Match =, regex.Match (lastChar); ,,,,,,,,,,,,,,,bool isNumber =, ! string.IsNullOrEmpty (match.ToString ()); ,,,,,,,,,,,,,,,int ascall =, (int) Convert.ToChar (lastChar); ,,,,,,,,,,,,,,,//如果输入的不是中文或者英文或者顿号的情况下弹出如下警告 ,,,,,,,,,,,,,,,if (! (==ascall 045年,| |,ascall ==, 043, | |, isNumber)) ,,,,,,,,,,,,,,,{ ,,,,,,,,,,,,,,,,,,,MessageBox.Show(“字符“,+,“& # 39;“,+,lastChar +,“& # 39;“, +,“不是有效输入,“,+,“请输入数字,或者是输入表示温度的“+ & # 39;和“& # 39;!“,,“提示“,,MessageBoxButton.OK,, MessageBoxImage.Information),,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,this.tb_tempreture.Text =, currentText.Substring (0,, length 作用;1),,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,this.tb_tempreture.Select (currentText.Length,0);//每次改变之后设置光标的位置为文字的最后面 ,,,,,,,,,,,,,,,} ,,,,,,,,,,,},,,,,,,,,, , ,,,,,,,}
这里面是判断输入的是否是数字以及“+”“-”号,这里面有两点需要注意:1使用Convert.ToChar()的时候实际上是将结果转换成炭对应的Unicode字符,所以要注意Convert.ToChar()的用法。2弹出对话框时候,输入框的输入焦点会自动回到最前面,所以必须手动将焦点移到最新的输入位置,这里使用this.tb_tempreture.Select (currentText.Length,0);//每次改变之后设置光标的位置为文字的最后面。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。