silverlight---TextBox只能输入数字或小数 屏蔽中文输入和非法粘贴: KeyDown事件处理方法

silverlight---TextBox只能输入数字或小数 屏蔽中文输入和非法粘贴: KeyDown事件处理方法,第1张

概述  private   void  txtRoomNum_KeyDown( object  sender, KeyEventArgs e) {     TextBox txt  =  sender  as  TextBox;      // 屏蔽非法按键,只能输入整数      if  ((e.Key  >=  Key.NumPad0  &&  e.Key  <=  Key.NumPad9))     private   voID  txtRoomNum_KeyDown( object  sender, KeyEventArgs e)
{
    TextBox txt 
=  sender  as  TextBox;
    
// 屏蔽非法按键,只能输入整数
     if  ((e.Key  >=  Key.NumPad0  &&  e.Key  <=  Key.NumPad9))
    {
        e.Handled 
=   false ;
    }
    
else
    {
        e.Handled 
=   true ;
    }
}

private   voID  txtRoomArea_KeyDown( object  sender, KeyEventArgs e)
{
    TextBox txt 
=  sender  as  TextBox;
    
// 屏蔽非法按键,只能输入小数
     if  ((e.Key  >=  Key.NumPad0  &&  e.Key  <=  Key.NumPad9)  ||  e.Key  ==  Key.Decimal)
    {
        
if  (txt.Text.Contains( " . " &&  e.Key  ==  Key.Decimal)
        {
            e.Handled 
=   true ;
            
return ;
        }
        e.Handled 
=   false ;
    }
    
else
    {
        e.Handled 
=   true ;
    }

}

 

 

参考一:
以下实现TextBox只能输入小数并且屏蔽中文输入和非法粘贴:
说明:以下实现均在Framework 3.0平台下

为TextBox加两个事件:TextChanged和KeyDown事件,具体如下:
KeyDown事件:

 1

private   voID  TextBox_KeyDown( object  sender, System.windows.input.KeyEventArgs e)
 2

        

{
 3

            TextBox txt 
= sender as TextBox;
 4


 5

             
//屏蔽非法按键
 6

            if ((e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) || e.Key == Key.Decimal)
 7

            

{
 8

                
if (txt.Text.Contains("."&& e.Key == Key.Decimal)
 9

                

{
10

                    e.Handled 
= true;
11

                    
return;
12

                }

13

                e.Handled 
= false;
14

            }

15

            
else if (((e.Key >= Key.D0 && e.Key <= Key.D9) || e.Key == Key.OemPeriod) && e.KeyboardDevice.ModifIErs != ModifIErKeys.Shift)
16

            

{
17

                
if (txt.Text.Contains("."&& e.Key == Key.OemPeriod)
18

                

{
19

                    e.Handled 
= true;
20

                    
return;
21

                }

22

                e.Handled 
= false;
23

            }

24

            
else
25

            

{
26

                e.Handled 
= true;
27

            }

28

        }

29


30

TextChanged事件
 1

private   voID  TextBox_TextChanged( object  sender, TextChangedEventArgs e)
 2

        

{
 3

            
//屏蔽中文输入和粘贴输入
 4

            TextBox textBox = sender as TextBox;
 5

            TextChange[] change 
= new TextChange[e.Changes.Count];
 6

            e.Changes.copyTo(change, 
0);
 7


 8

            
int offset = change[0].Offset;
 9

            
if (change[0].AddedLength > 0)
10

            

{
11

                
double num = 0;
12

                
if (!Double.TryParse(textBox.Text, out num))
13

                

{
14

                    textBox.Text 
= textBox.Text.Remove(offset, change[0].AddedLength);
15

                    textBox.Select(offset, 
0);
16

                }

17

            }

18

        }
总结

以上是内存溢出为你收集整理的silverlight---TextBox只能输入数字或小数 屏蔽中文输入和非法粘贴: KeyDown事件处理方法全部内容,希望文章能够帮你解决silverlight---TextBox只能输入数字或小数 屏蔽中文输入和非法粘贴: KeyDown事件处理方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1073247.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存