C#: TextBox文本框输入十六进制数值的处理
十六进制数值的输入控制(KeyPress事件):
private void textBox_hex_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { //e.Handled = e.KeyChar < '0' || e.KeyChar > '9'; //允许输入数字 e.Handled = !((e.KeyChar >= '0' && e.KeyChar <= '9') || (e.KeyChar >= 'a' && e.KeyChar <= 'f') || (e.KeyChar >= 'A' && e.KeyChar <= 'F')); if (e.KeyChar == (char)8) //允许输入回退键 { e.Handled = false; } if (e.KeyChar == 'x') //允许输入‘x’ { e.Handled = false; } if (e.KeyChar == 'X') //允许输入'X' { e.Handled = false; } }
数值的转换:public static int StringToHexOrDec(string strData)
1 public static int StringToHexOrDec(string strData) 2 { 3 int dData = -1; 4 try 5 { 6 if ((strData.Length > 2)) 7 { 8 if ((strData.Substring(0, 2).Equals("0x")) || (strData.Substring(0, 2).Equals("0X"))) 9 { 10 string str_sub = strData.Substring(2, strData.Length - 2); 11 dData = int.Parse(str_sub, System.Globalization.NumberStyles.HexNumber); 12 } 13 else 14 { 15 dData = int.Parse(strData, System.Globalization.NumberStyles.Integer); 16 } 17 } 18 else 19 { 20 dData = int.Parse(strData, System.Globalization.NumberStyles.Integer); 21 } 22 } 23 catch (Exception) 24 { 25 //MessageBox.Show("输入错误: " + strData, "错误"); 26 } 27 return dData; 28 }
博客园:http://www.cnblogs.com/linux-farmer/