當介面上要使用者輸入只有數字的字元時,預設的textbox是不能勝任的,網上有很多網友們提供了很多的做法,我總結了一下寫了乙個在c#下的實現,做到了如下的幾點:
1:只能輸入類似這樣的字元:-123456.789;1234.789;
2:在輸入的字串中不能存在兩個點符:12456.78//正確;12.456.78//不正確;
3:如果表示負數可以在字串的最前面加乙個減號「-」,也只能加到弟乙個字元的位置;
4:可以用複製粘帖功能和選單功能,但是只對能正確格式的字串有效,比如:12.34可以,abc不可以;
5:只是得到乙個字串,還可以在這個基礎上再改進自己所需的,比如新增對十六進製制的支援等。
**如下在.***下用c#寫的:
using system;
using system.windows.forms;
namespace numtextbox
protected override void wndproc(ref message m)
if (issign)
base.wndproc (ref m);
break;
}if (isdelete)
}if ((int)m.wparam == 1)
break;
case wm_paste:
idataobject idata = clipboard.getdataobject();//取剪貼簿物件
if(idata.getdatapresent(dataformats.text)) //判斷是否是text
}m.result = (intptr)0;//不可以貼上
break;
default:
base.wndproc (ref m);
break;}}
private bool matchnumber(string clipboardtext)
index = this.selectionstart;
if (index>0)
}index = clipboardtext.indexof(strnum[2]);
if (index!=-1)
}for(int i=0; i }return true;}} } public sub checkkeypress byval targettextbox as textbox,byval e as system.windows.forms.keypresseventargs,optional byval minus as boolean false,option... 匯入命名空間 using system.text.regularexpressions 在textbox的keypress事件新增 private void txtmoney keypress object sender,keypresseventargs e if convert.toint32 ... private void tbox keypress object sender,keypresseventargs e catch private void textbox keypress object sender,keypresseventargs e 或者private void text...如何控制TextBox控制項只能輸入數值型字串
TextBox只能輸入數字的驗證
TextBox中只能輸入數字的幾種常用方法 C