我正在查看文本框的文本更改事件的值,因此当我们使用手持设备进行扫描时,它会查看它,如果ascii字符9位于第7位,它应该踢出我们想要的内容。然而,这不起作用,不知道我错过了什么。我试过asciiBytes [0] == 0x80和asciiBytes [0] ==" 9"既没有工作......
protected void poTextBox_TextChanged(object sender, EventArgs e)
{
byte[] asciiBytes = Encoding.ASCII.GetBytes(poTextBox.Text);
if (asciiBytes[7] == 0x9)
{
string po = poTextBox.Text.Substring(0, 6);
string item = poTextBox.Text.Substring(9, 15);
poTextBox.Text = po;
itemTextBox.Text = item;
}
}
答案 0 :(得分:0)
C#数组是基于0的。所以数组的第7个位置是asciiBytes[6]
。
如果您想要字符ASCII 9(即制表符),则比较为9.如果您想要字符'9',则与'9'
进行比较。
此外,Encoding.ASCII.GetBytes()
的使用是不必要的,可能会导致问题。代码看起来像这样:
protected void poTextBox_TextChanged(object sender, EventArgs e)
{
if (poTextBox.Text[6] == 9)
{
// Etc...
}
}
答案 1 :(得分:0)
能够通过在扫描仪上编写Tab键来执行此操作,以便触发Text Changed事件...然后使用此代码:
if (poTextBox.Text.Substring(7, 1) == "\t")
{
string po = poTextBox.Text.Substring(0, 6);
string item = poTextBox.Text.Substring(8);
poTextBox.Text = po;
itemTextBox.Text = item;
}