这个问题我一直在研究,简单的我已经搞定,可以使用两种方法,第一使用api,即playsound函数,这个是比较容易的;另外一个就是使用wmp控件,简述如下:
在设计窗口,打开winform面板,选择添加与删除控件,在弹出的对话框中的net标签选择windows media play控件,然后在窗口客户区中拖入一个该控件,这样在项目中自动添加两个引用,然后在需要的地方调用对象的相应方法即可播放各种wmp支持的声音!

解决方案 »

  1.   

    如果一般的提示音,使用API的PlaySound工作的很好,如果要播放音乐等其他要求,就需要使用一些控件了,楼上的说得很好,使用wmp能满足大部分功能。
      

  2.   

    using System.Runtime.InteropServices;
    [DllImport("user32.dll")]
    public static extern bool MessageBeep(uint uType);
    MessageBeep(1);
    要播放多格式音频文件!请去下载控件!~
    http://www.codechina.net/Default.asp?classid=2
      

  3.   

    http://expert.csdn.net/Expert/TopicView1.asp?id=2914933
      

  4.   

    这个可以播WAV,调用时Sound.Play(FILE_NAME);internal class Helpers 
    {
    [Flags]
    public enum PlaySoundFlags : int 
    {
    SND_SYNC = 0x0000,  /* play synchronously (default) */
    SND_ASYNC = 0x0001,  /* play asynchronously */
    SND_NODEFAULT = 0x0002,  /* silence (!default) if sound not found */
    SND_MEMORY = 0x0004,  /* pszSound points to a memory file */
    SND_LOOP = 0x0008,  /* loop the sound until next sndPlaySound */
    SND_NOSTOP = 0x0010,  /* don't stop any currently playing sound */
    SND_NOWAIT = 0x00002000, /* don't wait if the driver is busy */
    SND_ALIAS = 0x00010000, /* name is a registry alias */
    SND_ALIAS_ID = 0x00110000, /* alias is a predefined ID */
    SND_FILENAME = 0x00020000, /* name is file name */
    SND_RESOURCE = 0x00040004  /* name is resource name or atom */
    } [DllImport("winmm.dll")]
    public static extern bool PlaySound( string szSound, IntPtr hMod, PlaySoundFlags flags );
    }
    public class Sound 
    {
    public static void Play( string strFileName )
    {
    Helpers.PlaySound( strFileName, IntPtr.Zero, Helpers.PlaySoundFlags.SND_FILENAME | Helpers.PlaySoundFlags.SND_ASYNC );
    }
    }