RichTextBox 是否有设定只允许输入16进制数字的功能,
要如何让 RichTextBox 只能够输入16进制数字呢?

解决方案 »

  1.   

    是不是只能输入0~9外加ABCDEF啊,用正则表达式验证
      

  2.   

    没发现什么可以这样设定的。至于有没有,不知道,因为我是新手```
    不过你可以通过改变RichTextBox 值的时候(TextChanged时间),来判断输入的值是不是16进制数字```如果是,就把值转成STRING给RichTextBox ,如果不是,就清除输入的值.
    我的基本思路是这样。不知道其他师兄弟们有没有什么好的意见```
      

  3.   

    private   void   richTextBox1_KeyPress(object   sender,   KeyPressEventArgs   e) 

            switch(char.ToLower(e.KeyChar)) 
            { 
            } 
    } 判断输入
      

  4.   

    List<char> list = new List<char>();
    private void initList()
    {
    char[] cArray = new char[]{'0','1',..'F'}; //all chars
    list.AddRange(cArray);
    }
    private void richTextBox1_KeyPress(object sender, KeyPressEventArgs e)  
    {  
      if (!list.Contains(e.KeyChar))  
      {
       MessageBox.Show(e.KeyChar +" is a illegal char");
       e.Cancel();
      }
    }
      

  5.   

    感谢 1F 提供 正则表达式这个好方法
    原来C#有这么方便的东西
    问题已解决
    以下是程序代码 有需要的可参考看看using System.Text.RegularExpressions;private void richTextBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        string RegularExpressions = "^[A-Fa-f0-9]+$";
        Match m = Regex.Match(e.KeyChar.ToString(), RegularExpressions);    if (!m.Success)
        {
            e.Handled = true;
        }
    }