1

さまざまなテキスト ボックスを含むフォームがあります。1 つのテキスト ボックスは浮動小数点数の入力に使用されるため、TextBox.KeyPress を使用して各桁を順番に処理し、Text プロパティのみを変更します。テキストは、[OK] ボタンが押されたときに (フォームを閉じる前に) 呼び出されるルーチンによって処理されます。また、TextBox.Leave イベントによっても呼び出されます。ただし、テキスト ボックスの内容を変更すると、[Return to variable] を押しても更新されません。

私はこれを次の方法で克服できると考えました。

    private void DestPointNoTextBox_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Return)
        {
            prvUpdateDestPointNo();
        }
    }

これは、テキスト ボックスにフォーカスがあるときにキーが押されるたびに呼び出されます。これは、テキスト ボックス内にブレークポイントを設定することで確認できます。ただし、Return キーが押されたときには呼び出されません。

Return キーを押したときに新しいテキストが確実に処理されるようにする方法を誰か説明できますか? 1 つの内容を変更した場合は、[OK] ボタンをクリックして新しい

4

2 に答える 2

1

Debugger を使用して、実行時に の値を決定e.KeyCodeします。

なんで?

同様のコード (Winforms TextBox、KeyDown 登録済み) を実行すると、e.KeyCode の値は

e.KeyCode = LButton | MButton | Back

KeyEventArgsあなたが使用できる別のプロパティはKeyValue-

private void DestPointNoTextBox_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyValue == 13)
    {
        prvUpdateDestPointNo();
    }
}
于 2013-09-02T01:09:12.943 に答える
1

Windows フォーム アプリケーションを使用している場合、フォームの AcceptButton プロパティを [OK] ボタンに設定すると、Enter/Return キーを押すと [OK] ボタンの Click イベントが発生します。

于 2013-09-02T01:03:05.770 に答える