【问题标题】:scan value to textbox, value have '~' so language is change C#扫描值到文本框,值有'〜'所以语言是改变C#
【发布时间】:2020-04-27 07:43:09
【问题描述】:

我使用条形码扫描仪扫描价值并推入textbox1(可以扫描条形码和二维码)。

我的电脑有两种语言,即“Eng”和“Thai”。 我使用按钮~(波浪号)来更改语言。 所以当我扫描二维码时。在某些值中,单词之间有~,因此它会更改系统语言,并且值会立即更改为泰语语言。

例如:我之前按下波浪号按钮将语言更改为英语,并且扫描二维码中的值是AAA~MMM。但是textbox1 显示AAAททท

我尝试更改更改语言的按钮是window+spacebar。当我扫描它是正确的值并且系统语言不再改变。

但如果我不想更改按钮来更改语言。当找到~ 值不会改变并且系统语言不会改变并且具有正确值时,谁知道如何修复textbox1

【问题讨论】:

  • 太糟糕了。许多条形码扫描仪充当键盘楔,因此它们的输入被解释为键盘输入。这是为什么总是使用组合键来实现特殊功能的一个例子。另一种方法是使用不以这种方式与系统交互的扫描仪。
  • 哇......谢谢@jmcilhinney。我只是了解条形码扫描仪的行为。所以它只有一种方法...更改更改语言的按钮。

标签: c# vb.net visual-studio


【解决方案1】:

您可以从textbox1 的文本中删除~。 在使用之前将此算法应用于您的文本,您就完成了。

使用:

string txt = textbox1.text;
foreach(char c in txt){
 if(c == '~')
   txt = txt.Replace(c.toString(),String.Empty);
} 

【讨论】:

  • 绝对没有必要遍历输入的字符。直接替换就行了。
  • 这有几个问题。首先,在输入字符时出现问题,因此以后将其取出没有任何价值。其次,在任何阶段取出角色都会改变数据,因此这并不是一件好事。第三,即使你在输入控件时捕获了字符,也可能是操作系统已经处理了虚拟按键,语言仍然改变了。
猜你喜欢
  • 1970-01-01
  • 2011-02-23
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
  • 2013-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多