4

入力されたキーが「return」のときにキーダウンイベントを持つテキストボックスがありますテキストを読み取るバーコードリーダーがありますが、複数のキーを書いているわけではありません。つまり、1文字しか書かれていません。文字 "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" />
4

2 に答える 2

4

KeyDown イベントは、どのキーが押されているかを瞬時に知らせるように設計されており、バーコード リーダーはキーボードをシミュレートしているように見えるため、送信する文字を連結する必要があります。

Key_Down イベントでは、次のようにする必要があります。

this.scannedString += e.Key;

そして、あなたがリターンを見るとき:

barcodeTextBox.Text = this.scannedString;

于 2013-01-28T13:25:51.313 に答える
2

あなたの問題を理解したかどうかはわかりませんが、これがあなたの解決策だと思います:

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();
        }
    }

バーコードスキャナーでテストしましたが、うまく機能します。

于 2013-01-28T14:04:06.457 に答える