问题描述
最近学习WPF遇到一个郁闷的问题:我在前台的TextBox的Text属性绑定了后台一个Double类型的数据,mode=TwoWay,UpdateSourceTrigger=PropertyChanged,这样前台数值变更就会通知到后台,但是存在一个问题,如果我在数字前端或者末尾不停的输入空格,后台绑定的内容还是原来的数值不变,但是前台的空格确实存在。在后台取值时,我需要判断光标的位置是否已经是末尾了,如果使用tbPositionCursor.Select(tbPositionCursor.Text.Length,0);
此种方式就会出现问题,tbPositionCursor.Text的值是不包含空格的,形如文本框内容为“123”,Text值却是“123”,且Length为3而不是8,请教如何才能判定光标已经到达末尾?
解决方案
解决方案二:
使用stringFormat限定输入数据格式
解决方案三:
为什么光标必须在末尾?我输入1234,发现少输入了一个3,输入的是124,然后我光标放到中间,输入个3,这时候你不让我提交,必须先把光标放到末尾才让提交??
解决方案四:
至于多出空格,那是另一个问题,参考1楼
解决方案五:
引用2楼Z65443344的回复:
为什么光标必须在末尾?我输入1234,发现少输入了一个3,输入的是124,然后我光标放到中间,输入个3,这时候你不让我提交,必须先把光标放到末尾才让提交??
我需要判断光标是否到达文本框末尾,如果到达末尾,那么用户按下右箭头就会切换至下一个文本框。
解决方案六:
其实你可以判断用户输入的如果是回车,就切换到下一个文本框,或者用户按tab键,也会自动切换到下一个文本框(这功能不用你自己实现),按右箭头切换,其实用户体验并不好,一不小心就多按了一次,然后就跑了
解决方案七:
引用1楼duanzi_peng的回复:
使用stringFormat限定输入数据格式
试了一下,使用stringformat无法滤除空格,因为Text属性是没有空格的“123”,但是文本框中显示的是包含空格的“123”
解决方案八:
引用5楼Z65443344的回复:
其实你可以判断用户输入的如果是回车,就切换到下一个文本框,或者用户按tab键,也会自动切换到下一个文本框(这功能不用你自己实现),按右箭头切换,其实用户体验并不好,一不小心就多按了一次,然后就跑了
主要是面向的用户群的使用习惯,他们希望DataGrid的操纵习惯和Excel相同,通过方向键切换焦点。