我正在编写一个用于刷新 MCU 的程序,需要从 WinForm 收集字符串格式的输入,但用于字节值。
输入字段 | 价值观 |
---|---|
用户数据 0 | 0xA1 |
写保护控制 | 0xC2 |
如何通过将从
TextBox.Text
对象收集的字符串输入到字节来将它们从字符串更改为字节?
例如:将字符串“0xA1”改为字节0xA1
让我展开解释
我有一个 WinForm 文本框,它有一个默认值
0xFF
用于我要配置的寄存器
//
// WriteProtectionControlBitOne
//
this.WriteProtectionControlBitOne.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.WriteProtectionControlBitOne.Location = new System.Drawing.Point(245, 278);
this.WriteProtectionControlBitOne.Name = "WriteProtectionControlBitOne";
this.WriteProtectionControlBitOne.Size = new System.Drawing.Size(235, 22);
this.WriteProtectionControlBitOne.TabIndex = 9;
this.WriteProtectionControlBitOne.Text = "0xFF";
如果用户在不更改这些值的情况下按下 Flash 按钮,我需要从 TextBox 收集默认字节值。我为此使用了这段代码。
this.WriteProtectionControlBitZero.Text
这给了我一个字符串,这是一个错误,我试图解析文本,但问题是
Convert.Byte(this.WriteProtectionControlBitZero.Text.Trim(0,2))
Parse.Byte(this.WriteProtectionControlBitZero.Text.Trim(0,2))
这段代码收集了一个无符号整数的字符串表示,所以如果文本框的值是
0x12
,那么输出是12
而不是18
。当值是一个字母时,说0xFC
然后程序无法编译。
你应该使用 Convert.ToByte(...)!
参见:https://learn.microsoft.com/en-us/dotnet/api/system.convert.tobyte?view=net-7.0