使用C#.Net 4
我的应用程序在启动时加载音频文件,如果音频文件的路径无效,我们会警告用户。我正在进行改进,允许用户找到文件,删除关联或继续保持不变。
以前我使用MessageBox来执行此操作,并且效果很好,但是需要自定义按钮意味着我必须创建自定义对话框。
当我调用此自定义对话框时,它不会阻止主窗体上的操作,您仍然可以单击菜单,按钮,拖放等等...在您单击之前,MessageBox不允许与主窗体交互单击确定或取消以关闭对话框。我已将两种方法都留在以下方法中进行演示。
因此,调用MessageBox.Show会停止对主窗体的所有操作,使用.ShowDialog()调用我的自定义窗体不会,我做错了什么?
private void PopulateWaveformAudio()
{
if (_sequence.GetAllMedia().Any())
{
IMediaModuleInstance media = _sequence.GetAllMedia().First();
Audio audio = media as Audio;
toolStripMenuItem_removeAudio.Enabled = true;
if (audio.MediaExists)
{
TimelineControl.Audio = audio;
toolStripButton_AssociateAudio.ToolTipText = string.Format("Associated Audio: {0}",
Path.GetFileName(audio.MediaFilePath));
}
else
{
InvalidAudioPathDialog result = new InvalidAudioPathDialog(audio.MediaFilePath);
result.ShowDialog();
switch(result.InvalidAudioDialogResult)
{
case InvalidAudioDialogResult.KeepAudio:
break;
case InvalidAudioDialogResult.RemoveAudio:
break;
case InvalidAudioDialogResult.LocateAudio:
break;
}
string message = String.Format("Audio file not found on the path:\n\n {0}\n\nPlease Check your settings/path.",
audio.MediaFilePath);
Logging.Warn(message);
MessageBox.Show(message, @"Missing audio file",MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
}
}