按键只允许在 WPF 文本框中出现一个字符事件
本文关键字:事件 字符 一个 文本 WPF | 更新日期: 2023-09-27 17:56:24
>我有一个文本框,当输入的键是"返回"时,它有键下事件,我有一个条形码阅读器,他在其中读取文本,但它没有写入多个键,即只写一个字母,让我们说"a",如果我写第二个字母"a"被覆盖成为"b"但不变成"ab"。有谁知道这是什么原因?
private void barcodetexbox_KeyDown(object sender, KeyEventArgs e)
{
if (scannedString.Text != "" && e.Key==Key.Return)
{
//do something
}
}
和在"MainWindow.xaml"中
<TextBox x:Name="scannedString" HorizontalAlignment="Left" Height="50"
Margin="468,164,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="450"
FontSize="24" Focusable="True" Padding="0,6,0,0"
KeyDown="barcodetexbox_KeyDown" />
KeyDown 事件旨在让您知道哪些键在某一时刻关闭,并且您的条形码阅读器似乎模拟了键盘,因此您需要连接它发送的字符
在您的Key_Down事件中,您必须执行以下操作:
this.scannedString += e.Key;
当您看到返回时:
barcodeTextBox.Text = this.scannedString;
不确定我是否理解了您的问题,但我认为这是您的解决方案:
private void scannedString_PreviewKeyDown(object sender, KeyEventArgs e)
{
if ((sender as TextBox).Text !="" && e.Key == Key.Return)
{
MessageBox.Show((sender as TextBox).Text); // I mean do some thing
(sender as TextBox).Clear();
}
}
我已经用条形码扫描仪测试过它,效果很好。