Как избежать звукового сигнала DateTimePicker - PullRequest
0 голосов
/ 05 апреля 2010

У меня есть собственное расширение WinForms DateTimePicker, и оно работает нормально, за исключением того факта, что он выдает этот раздражающий звуковой сигнал всякий раз, когда я нажимаю клавишу выхода или ввода.

Я пытался переопределить OnKeyPress, какописан здесь , но таким образом он блокирует все нажатых клавиш и, таким образом, делает невозможным ввод даты или времени с помощью клавиатуры.Стоит ли переопределить WndProc или есть другой способ решения этой проблемы?

Кстати, кто-нибудь знает, почему звуковой сигнал был бы желателен в первую очередь?

Ответы [ 2 ]

1 голос
/ 06 апреля 2010

Просто подавьте его с помощью соответствующего обработчика событий KeyDown:

  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
      dateTimePicker1.KeyDown += squelchBeep;
    }
    private void squelchBeep(object sender, KeyEventArgs e) {
      if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Escape) e.SuppressKeyPress = true;
    }
  }
1 голос
/ 05 апреля 2010

Если вы переопределяете onkeypress, вы должны пройти и вызвать базу для ключей, которые вы хотите принять, и не вызывать базу для входа и выхода, если вы хотите, чтобы те игнорировались. Может быть, вы должны опубликовать свой код, чтобы увидеть, есть ли опечатка в логике.

Звуковой сигнал обычно указывает пользователю, что нажатие клавиши ничего не сделало.

...