MessageBox 根据事件播放不同的铃声
Posted
技术标签:
【中文标题】MessageBox 根据事件播放不同的铃声【英文标题】:MessageBox plays different chimes depending on event 【发布时间】:2018-07-27 17:03:23 【问题描述】:我正在显示DevExpress.XtraEditors.XtraMessageBox
以提醒用户发生了错误。方法如下:
private void TryToExit()
if (ERROR OCCURRED)
DevExpress.XtraEditors.XtraMessageBox.Show("Name already in use!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
// Focus the textbox so its text can be selected
nameTextBox.Focus();
nameTextBox.SelectAll();
else
Close();
有两种场景可以调用该方法:
1 表单上的确定按钮被按下:
private void OkButton_Click(object sender, EventArgs e)
TryToExit();
2 用户在文本框中按回车键
private void NameTextBox_KeyDown(object sender, KeyEventArgs e)
if (nameTextBox.Focused)
// Try to close the dialog if the user hits the return key
if (e.KeyCode == Keys.Return)
TryToExit();
e.SuppressKeyPress = true;
当我在第一个场景(确定按钮)中调用TryToExit()
时,消息框会播放声音Windows Foreground.wav
,但是当我从第二个场景(返回键)中调用TryToExit()
时,消息框会播放声音Windows Background.wav
。两种不同的声音如何播放有点烦人,我想知道是否有办法确保在任何一种情况下播放相同的声音效果。
【问题讨论】:
见Disable beep of enter and escape key c# @LarsTech 谢谢,BeginInvoke()
成功了。
【参考方案1】:
解决方案是使用BeginInvoke()
作为消息框。
BeginInvoke(new Action(() => DevExpress.XtraEditors.XtraMessageBox.Show(...));
查看this answer的评论
【讨论】:
以上是关于MessageBox 根据事件播放不同的铃声的主要内容,如果未能解决你的问题,请参考以下文章