c# - 当listView中的dateTime == dateTime.Now时播放声音

标签 c# visual-studio listview datetime audio

我试图在ListView.Items中的DateTime等于DateTime.Now时播放声音。
我的代码是:

public Form1()
    {
        InitializeComponent();
        listView1.View = View.Tile;
        listView1.View = View.Details;
        listView1.Groups.Add(pilne);
        listView1.Groups.Add(przyszle);
        DateTime localDate = DateTime.Now;

        foreach (ListViewItem item in listView1.Items)
        {
            if (item.SubItems[2].Text == DateTime.Now.ToString("dd/MMMM/yyyy"))
            {
                SoundPlayer simpleSound = new SoundPlayer(@"c:\Windows\Media\Alarm01.wav");
                simpleSound.Play();
            }
        }
    }

我的第二种形式是:
public Form2()
    {
        InitializeComponent();
        dateTimePicker1.Format = DateTimePickerFormat.Custom;
        dateTimePicker1.CustomFormat = "dd/MMMM/yyyy";
        dateTimePicker2.Format = DateTimePickerFormat.Time;
        dateTimePicker2.ShowUpDown = true;

    }

我从这样的第二种形式添加项目:
private void btn2Zapisz_Click(object sender, EventArgs e)
    {
        string data2 = dateTimePicker1.Text;        //date
        string godzina2 = dateTimePicker2.Text;     //time
        string nazwa2 = tB2Nazwa.Text;              //name
        string opis2 = rTB2Opis.Text;               //description
        ListViewItem lvi = new ListViewItem(nazwa2);
        lvi.SubItems.Add(data2);
        lvi.SubItems.Add(godzina2);
        lvi.SubItems.Add(opis2);
        var dataWybrana = dateTimePicker1.Value;
        var dataAktualna = DateTime.Now.AddDays(7);
        string lvi2 = lvi.ToString();

        if (dataWybrana < dataAktualna)
        {
            listViewForm2.Items.Add(lvi);
            lvi.Group = pilne2;
        }
        else
        {
            listViewForm2.Items.Add(lvi);
            lvi.Group = przyszle2;
        }
        for (int i = listViewForm2.SelectedItems.Count - 1; i >= 0; i--)
        {
            ListViewItem itm = listViewForm2.SelectedItems[i];
            listViewForm2.Items[itm.Index].Remove();
        }
        this.Close();
    }

它没有播放声音。我想在lvi.SubItems.Add(data2)等于当前日期时播放声音。这段代码有什么问题?

最佳答案

播放前请确保已加载声音

SoundPlayer simpleSound = new SoundPlayer(@"c:\Windows\Media\Alarm01.wav");
simpleSound.Load();
simpleSound.Play();

另外,您可能希望将声音文件作为资源存储在应用程序中。然后,您可以像这样引用它。
SoundPlayer simpleSound = new SoundPlayer(Properties.Resources.Alarm01);
simpleSound.Play();

这样可以避免由于权限问题等导致找不到声音文件的问题。

关于c# - 当listView中的dateTime == dateTime.Now时播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43343767/

相关文章:

java - DrawerLayout ListView 未使用 GLSurfaceView 作为内容绘制

c# 检查域是否存在

c# - WPF 组合框作为 System.Windows.Media.Colors

c# - 如何使用 C# 登录到 ASP.Net Forms Authenticated 站点?

c - Visual Studio - 如何在Linux服务器上运行和编译C

c# - Office.Interop.Word : How to add a picture to document without getting compressed

Android - 从 ListView 中的项目检索到的数据不正确

c# - 在 Fluent NHibernate 自动映射中自引用多对多关系自动映射到 1 :n and not n:n

javascript - Angular 2 typescript 引用路径

C#:如何在虚拟模式下有效地过滤(隐藏)ListView 项目?