c# - 实现带有声音文件预览的 OpenFileDialog

标签 c# winforms audio

我想实现一个打开文件对话框或文件浏览器,另外提供一个“预览”按钮来播放当前选择的声音文件(特别是波形格式,此应用程序不需要其他格式)。

  • 我可以使用各种控件(如 TreeView 和列表框)创建自己的表单来显示文件夹和文件,但我认为我会重新发明轮子,或者如果没有其他事情需要做很多工作来做一些非常简单的事情。你推荐这样做吗?
  • 我可以修改(继承)现有的 OpenFileDialog 并以某种方式为其添加声音播放按钮吗?
  • 是否有一些免费的自定义文件选择器库可供使用? (前提是许可允许在商业意义上包含在内。)

最佳答案

在您着迷于破解对话框之前,请先考虑一个利用 FileOk 事件的简单解决方案。创建一个名为 frmPreview 的表单。给它一个接受字符串的构造函数。您将需要一个取消和一个确定按钮和代码来播放该文件。

像这样显示该表单:

        var dlg = new OpenFileDialog();
        // Set other dlg properties...
        dlg.FileOk += (s, cancel) => {
            using (var prev = new frmPreview(dlg.FileName)) {
                if (prev.ShowDialog() != DialogResult.OK) cancel.Cancel = true;
            }
        };
        if (dlg.ShowDialog(this) == DialogResult.OK) {
            // use the file
            //...
        }

现在,只要用户点击“打开”,您的预览表单就会出现。用户可以单击取消并从对话框中选择另一个文件。

关于c# - 实现带有声音文件预览的 OpenFileDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2976305/

相关文章:

c# - 如何从 MVC4 中的 View 编辑父项的属性?

c# - 将来自不同 MEF 插件的 ToolStripMenuItem 合并到一个 MenuStrip 中

android - 是否可以在Android中以编程方式收听扬声器的输出?

javascript - 如何在 ipad 上使用 javascript 在网络浏览器中播放 wav 文件

c# - ASP.Net 中的 CSS、主题和皮肤是什么?

c# - 使用 Flags 枚举时如何减少 ASP.NET MVC View 中的代码重复

c# - 从 Outlook.MailItem 获取发件人事件目录用户主体

c# - 在 RichTextBox 中插入笑脸会插入一些笑脸并忽略其他笑脸

c# - 如何将表单的图标更改为我自己的图像?

android - 使用Android Media Player播放音频文件