0

私のアプリケーションがリッチ テキスト ボックスとボタンで構成されているとします。ユーザーが RTB でキーを押したときにボタンを有効にしたいのですが、修飾子にすることはできません。

これは、PreviewKeyDown のような KeyEvent で処理できますが、修飾子 + 他の文字 (有効な SHIFT + S など) を押すと機能しません。結果は文字 S になります。要求を分離する方法はありますか?別のアプローチを使用する必要がありますか?TextChanged を使用することもできますが、既に記述したアクションは他にもたくさんあります。

簡単な説明:

 private void richTextBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {
            if (!e.Alt && !e.Control && !e.Shift)
            {
                this.button1.Enabled = true;
                    else
                this.button1.Enabled = false;
            }
        }
4

1 に答える 1

2

KeyPressコントロールにフォーカスがあり、修飾キーがこのイベントに影響を与えないときに文字、スペース、またはバックスペースキーが押されたときにイベントが発生するため、使用KeyPressすると役立つようです。

ただし、ユーザーは RichtextBox に何かを貼り付けることができるため、TextChangedイベントの処理とチェックを検討することをお勧めします。この方法では、重要なイベントは発生しません。TextLength

于 2015-09-23T10:10:17.917 に答える