C#获取textBox输入10进制数,转换成16进制通过串口发送
时间: 2024-10-11 20:17:45 浏览: 52
C# TextBox中只能输入数字的几种常用方法
4星 · 用户满意度95%
在C#中,你可以使用TextBox控件获取用户的10进制输入,然后将其转换为16进制并通过SerialPort发送到串口。以下是一个简单的步骤:
1. 首先,你需要在窗体上添加一个TextBox控件(例如textBoxInput),用于用户输入十进制数值。
```csharp
private TextBox textBoxInput;
// 在窗体加载时设置TextBox属性
textBoxInput = new TextBox();
textBoxInput.Location = new Point(10, 10); // 设置位置
```
2. 然后,在某个按钮点击事件(如Button_Click)中,获取TextBox的内容,并将其转换为十六进制。
```csharp
private void buttonSend_Click(object sender, EventArgs e)
{
int decimalValue;
if (int.TryParse(textBoxInput.Text, out decimalValue)) // 检查是否能转换成功
{
string hexValue = Convert.ToString(decimalValue, 16).ToUpper(); // 转换为大写的16进制字符串
SendThroughSerialPort(hexValue);
}
else
{
MessageBox.Show("请输入有效的十进制数!");
}
}
```
这里假设`SendThroughSerialPort`函数负责通过SerialPort发送数据:
```csharp
private void SendThroughSerialPort(string data)
{
SerialPort sp = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One); // 修改为你的串口号和波特率等配置
sp.Open();
try
{
sp.Write(data); // 发送数据
Console.WriteLine($"Data sent: {data}");
}
catch (Exception ex)
{
MessageBox.Show($"发送失败: {ex.Message}");
}
finally
{
sp.Close();
}
}
```
阅读全文