XAML代码
< TextBox Height=
"23"
HorizontalAlignment=
"Left"
Margin=
"100,5,0,0"
Name=
"textBox1"
VerticalAlignment=
"Top"
Width=
"120"
DataObject.Pasting=
"textBox1_Pasting"
PreviewKeyDown=
"textBox1_PreviewKeyDown"
InputMethod.IsInputMethodEnabled=
"False"
PreviewTextInput=
"textBox1_PreviewTextInput"
/ >
cs代码
//检测粘贴
private
void
textBox1_Pasting(
object
sender, DataObjectPastingEventArgs e)
{
if
(e.DataObject.GetDataPresent(
typeof
(String)))
{
String text = (String)e.DataObject.GetData(
typeof
(String));
if
(!isNumberic(text))
{ e.CancelCommand(); }
}
else
{ e.CancelCommand(); }
}
private
void
textBox1_PreviewKeyDown(
object
sender, KeyEventArgs e)
{
if
(e.Key == Key.Space)
e.Handled =
true
;
}
private
void
textBox1_PreviewTextInput(
object
sender, TextCompositionEventArgs e)
{
if
(!isNumberic(e.Text))
{
e.Handled =
true
;
}
else
e.Handled =
false
;
}
//isDigit是否是数字
public
static
bool
isNumberic(
string
_string)
{
if
(
string
.IsNullOrEmpty(_string))
return
false
;
foreach
(
char
c
in
_string)
{
if
(!
char
.IsDigit(c))
//if(c<‘0‘ c="">‘9‘)//最好的方法,在下面测试数据中再加一个0,然后这种方法效率会搞10毫秒左右
return
false
;
}
return
true
;
}