C#: TextBox文本框输入十六进制数值的处理
十六进制数值的输入控制(KeyPress事件):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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/
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步