在KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)中
对e.KeyChar进行判断如果是中文的话就:
e.Handled = true;但是,不行.
怎解?

解决方案 »

  1.   

    this.textBox1.ImeMode = System.Windows.Forms.ImeMode.Off;private void textBox1_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
    {
    int i;
    System.Text.StringBuilder sb=new System.Text.StringBuilder();
    foreach(char c in textBox1.Text)
    {
    i=Convert.ToInt32(c);
    if(i<256)
    {
    sb.Append(c);
    }
    }
    textBox1.Text=sb.ToString();
    }
    比较笨的方法。
      

  2.   

    在我webfrom中可以用如下正则表达式来判断,winform应该也有相应的办法
    <script language=javascript>
    function b123(e)
    {
    var a=e.value;
    if(a.match(/[\u4E00-\u9FA5]/g)!=null)
    {
    alert("有汉字")
    }
    }
    </script>
    <input name=a123 onblur=b123(this)>
      

  3.   

    private void textBox1_TextChanged(object sender, System.EventArgs e)
    {
    string pat=@"[\u4e00-\u9fff]";
    Regex rg=new Regex(pat);
    Match mch=rg.Match(textBox1.Text);
    if(!mch.Success)
                                        return;
                               MessageBox.Show("不能输入中文字符");

    }
      

  4.   

    我来个方法
    try
    {
    int x = Int32.Parse(this.textEdit1.Text);
                                        //假设text的值是数字,这样x=text就没问题,否则抛出异常
                                        e.Handled = true;
    }
    catch
    {
    MessageBox.Show("对不起,只能是数字.");
    }
      

  5.   

    菜鸟也想试一试
    <script language=javascript>
    function validnum() 


    if (isNaN(parseFloat(srcstr/1.0)))  
    {  
    alert(srcstr+\" 不是正确的数值类型!\"); 
    window.event.srcElement.value="";
    return; 

    }
    </script>
    也不知道可行不!!
      

  6.   

    菜鸟也想试一试
    <script language=javascript>
    function validnum() 


    if (isNaN(parseFloat(srcstr/1.0)))  
    {  
    alert(srcstr+\" 不是正确的数值类型!\"); 
    window.event.srcElement.value="";
    return; 

    }
    </script>
    也不知道可行不!!