asp.net将textbox中的光标移动到当前输入的文本框|asp.net将textbox中的光标移动到当前输入的文本后

时间:2018-02-25  来源:WinForm  阅读:

今天写winform应用的时候想写一个类似于银行输入金额的那样的一个文本框,就是当用户输入满多少位的时候自动在后面添加诸如逗号之类的标识符,字符的判断在TextChanged 中很好实现,但有个问题就是我在判断到输入满8位的时候就自动添加一个逗号,但是文本框的光标就会跑到文本框开始的位置,很不方便,所以找了一些解决办法,代码如下

 代码如下

private void textBox9_TextChanged_1(object sender, EventArgs e)

{

if(textBox9.Text.Length==8*(i+1)+i)

{

textBox9.Text += ",";

i++;

textBox9.SelectionStart = int.MaxValue;

}

}


可以使用textbox的selectionstart属性设置光标所在的位置。

js代码

在IE、Firefox、Opera等主流浏览器的获取光标位置(getCursortPosition)以及设置光标位置(setCursorPosition)的函数。

 代码如下

function getCursortPosition (ctrl) {//获取光标位置函数
 var CaretPos = 0; // IE Support
 if (document.selection) {
 ctrl.focus ();
  var Sel = document.selection.createRange ();
  Sel.moveStart ("character", -ctrl.value.length);
  CaretPos = Sel.text.length;
 }
 // Firefox support
 else if (ctrl.selectionStart || ctrl.selectionStart == "0")
  CaretPos = ctrl.selectionStart;
 return (CaretPos);
}

PS:参数ctrl为input或者textarea对象

 代码如下

function setCaretPosition(ctrl, pos){//设置光标位置函数
 if(ctrl.setSelectionRange)
 {
  ctrl.focus();
  ctrl.setSelectionRange(pos,pos);
 }
 else if (ctrl.createTextRange) {
  var range = ctrl.createTextRange();
  range.collapse(true);
  range.moveEnd("character", pos);
  range.moveStart("character", pos);
  range.select();
 }
}

PS:参数ctrl为input或者textarea对象,pos为光标要移动到的位置

asp.net将textbox中的光标移动到当前输入的文本框|asp.net将textbox中的光标移动到当前输入的文本后

http://m.bbyears.com/asp/39518.html

推荐访问:
相关阅读 猜你喜欢
本类排行 本类最新