wpf中Combox的文本改变事件如何得到

2019-09-01 17:06

1、在使用vs2008的wpf的时候,combobox用到的会很多,估计大家都遇到过Combobox控件的文本改变事件的问题

在Combobox控件中本身并没有TextChanged事件,所以对文本改变事件没有办法处理。我就遇到过这样的问题。

在网上查资料也没有这方面的资料 只碰到有个说视觉树中存在TextChanged事件,不明白视觉树是什么意思,后来还是无意中发现Combobox还是能变相的实现TextChanged事件, 具体的例子如下

在Xaml文件里 添加如下语句

TextBoxBase.TextChanged=\这样Combobox就有了文本的改变事件了

2、使用Combobox控件是能得到TextChanged事件了,但是这时还会存在另外一个问题,也比较麻烦,那就是控制Combobox文本输入的长度问题,利用Combobox的TextChanged事件是能控制长度,但是当判断完后Combobox的光标会跑到第一位了 这时候再输入的时候就会改变原有的值,这个也是个麻烦事,但是后来也是通过另外的方法实现了

具体例子如下:txb_StaffID是Combobox控件

private void txb_StaffID_TextChanged(object sender, TextChangedEventArgs e) {

if (PublicMethodBLL.StrLength(txb_StaffID.Text) > 20) {

txb_StaffID.Text = PublicMethodBLL.StrCut(txb_StaffID.Text, 21);

TextBox textBox =

(TextBox)GetDescendantByType(this.txb_StaffID, typeof(TextBox));

textBox.SelectionStart = 20; //或者写成txb_StaffID.Text.Length textBox.SelectionLength = 0; } }

其中有几个方法 StrLength()方法是得到字符串的真实长度(汉字两个字节),StrCut()方法是截取字符的方法(包含汉字的两个字节),最关键的是下面这句 TextBox textBox =

(TextBox)GetDescendantByType(this.txb_StaffID, peof(TextBox));

只有有这句话 Combobox才能真正的控制光标的位置


wpf中Combox的文本改变事件如何得到.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:同心寨小学开展师德宣传月活动实施方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: