0

マスク編集 TextBox を使用しています。テキスト ボックスには常に 0 (ゼロ) が表示されます。キーボードからキーを入力できません。最初にゼロを削除する必要があり、それから数字を入力できます。したがって、ここで追加の手順を実行しています。キーボードから入力するとすぐに入力できますか? どんな提案でも大歓迎です。

private void DateDay_GotFocus(object sender, RoutedEventArgs e)
{
    if (((TextBox)sender).Text == "Day")
        ((TextBox)sender).Text = string.Empty;
}

private void DateDay_LostFocus(object sender, RoutedEventArgs e)
{
    if (((TextBox)sender).Text == string.Empty)
        ((TextBox)sender).Text = "Day";
    else
        CheckForCorrectDateDay((TextBox)sender);
}

Focus イベントで試しましたが、成功しませんでした:

ここに画像の説明を入力

4

2 に答える 2

1

GotFocusイベントでテキストボックス内のすべてのコンテンツを選択する必要があります。MaskedTextBox コントロールの場合、フォーカス イベントの発生後に内部で選択を処理します。そのため、後でBeginInvoke呼び出す必要があります。SelectAll()

private void DateDay_GotFocus(object sender, RoutedEventArgs e)
{
        this.BeginInvoke((MethodInvoker)delegate() {
            ((TextBox)sender).SelectAll();
        });  
}

このようにして、直接入力を開始できます。null が許可されていない場合、テキストを null にすることはできません。

WPF バージョン:

private void TextBox_GotFocus(object sender, RoutedEventArgs e) {
    this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate() {
        ((TextBox)sender).SelectAll();
    });
}
于 2013-06-26T14:25:59.500 に答える