在按键处理的代码里填上 e.Handled = true; 就没声音了
private void textBoxCodebar_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == Convert.ToChar(Keys.Enter)) { button2_Click(sender, e); e.Handled = true; } }
来源: https://blog.csdn.net/shibing5238/article/details/7619505
如何才能使在Edit组件中按按下"Ctrl+A"时,不要发出'叮'的一声?
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); var vWinControl: TWinControl; begin vWinControl := FindControl(Msg.hwnd); if not (vWinControl is TEdit) then Exit; case Msg.message of WM_KEYDOWN, WM_KEYUP: begin if ssCtrl in KeyDataToShiftState(Msg.lParam) then case Msg.wParam of Ord('A'): Handled := True; end; case Msg.wParam of VK_RETURN, VK_ESCAPE: Handled := True; end; if Handled then vWinControl.Perform(Msg.message, Msg.wParam, Msg.lParam); end; end; end;
来源:https://bbs.csdn.net/topics/70056087
在不响应按键输入的窗口,每次按下时,都会发出“咚咚咚”的声音,如何去掉?
咚咚咚声本来是windows用来提醒用户,输入无效的。
既然你不想要,可以在PreTranslateMessage里返回TRUE,拿我一个控件为例,如果不做处理,按什么键都会发出咚咚咚声。但我的控件支持数字键:
BOOL CXXXXCtrl::PreTranslateMessage(MSG* pMsg) { if (WM_KEYDOWN != pMsg->message) return COleControl::PreTranslateMessage(pMsg); if (0x31 <= pMsg->wParam && pMsg->wParam <= 0x39) //数字键 { SelectLegendFromIndex(pMsg->wParam - 0x31); return TRUE; } return COleControl::PreTranslateMessage(pMsg); }
来源:https://bbs.csdn.net/topics/110182044