0

WPF には、内部にフロー ドキュメントを含む RichTextBox があります。ユーザーがいつスペースバーを押したかを知る必要があります。以下のコードは機能し、キーが押されるたびにメッセージボックスを表示しますが、スペースバーは表示しません。F を押すと、たとえば F の付いたメッセージボックスが表示されますが、スペースを押すと、キャレットは次の位置に移動します。

private void RichTextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
            {
                MessageBox.Show(e.Text);
            }

ここで何が欠けていますか?御時間ありがとうございます :)

4

1 に答える 1

1

PreviewKeyDownまたはPreviewKeyUpイベントを次のように処理することで、スペース文字を検出できます。

private void PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Space) 
    {
        // The user pressed the space bar
    }
}

イベントがスペース文字を無視する理由については、PreviewTextInput がスペースを処理しない理由PreviewTextInputで興味深い情報を見つけることができます。投稿とそこにあるリンク。

于 2013-10-28T21:06:27.487 に答える