保存闹钟
private void button4_Click_1(object sender, EventArgs e)
{
string[] arr = new string[lstList.Items.Count];
for (int i = 0; i < lstList.Items.Count; i++)
{
string s = "";
int len = lstList.Items[0].SubItems.Count;
for (int j = 1; j < len; j++)
{
s += lstList.Items[i].SubItems[j].Text + ",";
}
if (s.EndsWith(","))
s = s.Substring(0, s.Length - 1);
arr[i] = s;
}
File.WriteAllLines(conf, arr);
}
调入闹钟
private void button5_Click(object sender, EventArgs e)
{
string[] array = File.ReadAllLines(conf);
lstList.Items.Clear();
for (int i = 0; i < array.Length; i++)
{
if (array[i].Length > 0)
{
ListViewItem listviewItem = new ListViewItem();
string s = array[i].ToString();
string[] arr = s.Split(',');
listviewItem.Text = (i + 1).ToString();
listviewItem.SubItems.Add(arr[0]);
listviewItem.SubItems.Add(arr[1]);
listviewItem.SubItems.Add(arr[2]);
lstList.Items.Add(listviewItem);
}
}
添加时间
private void Add_Click(object sender, EventArgs e)
{
if (txtMsg.Text.Trim().Replace(" ", "") == "")
{
MessageBox.Show("备注不能为空值");
return;
}
int i = lstList.Items.Count + 1;
ListViewItem listItem = lstList.Items.Add(i.ToString());
listItem.SubItems.Add(dtboxTime.Value.ToString("HH:mm:ss"));
listItem.SubItems.Add(txtMsg.Text);
listItem.SubItems.Add("");
txtMsg.Text = "";
}
删除选定时间
private void button1_Click_1(object sender, EventArgs e)
{
for (int i = lstList.SelectedItems.Count - 1; i >= 0; i--)
{
ListViewItem item = lstList.SelectedItems[i];
lstList.Items.Remove(item);
}
}
定时判断
private void timer1_Tick(object sender, EventArgs e)
{
for (int i = 0; i < lstList.Items.Count; i++)
{
if (m_TodayDate.ToString("yyyyMMdd") != DateTime.Now.ToString("yyyyMMdd"))
{
for (int n = 0; n < lstList.Items.Count; n++)
{
lstList.Items[n].SubItems[3].Text = "";
}
m_TodayDate = DateTime.Now;
}
string timeString = lstList.Items[i].SubItems[1].Text;
timeString = DateTime.Now.ToString("yyyy/MM/dd") + " " + timeString;
if (DateTime.Parse(timeString) <= DateTime.Now)
{
if (lstList.Items[i].SubItems[3].Text != "Y")
{
lstList.Items[i].SubItems[3].Text = "Y";
ts = lstList.Items[i].SubItems[2].Text;
speak.Sp_T(ts);
}
}
}
朗读功能
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Speech.Synthesis;
using System.Globalization;
namespace 闹钟
{
class Speedch_T
{
private SpeechSynthesizer speech = new SpeechSynthesizer();
public void Sp_T(string phrase)
{
#region 只能读数字和英文
#endregion
#region 可以读取中文
SpeechSynthesizer speech = new SpeechSynthesizer();
CultureInfo keyboardCulture = System.Windows.Forms.InputLanguage.CurrentInputLanguage.Culture;
InstalledVoice neededVoice = speech.GetInstalledVoices(keyboardCulture).FirstOrDefault();
if (neededVoice == null)
{
phrase = "Unsupported Language";
}
else if (!neededVoice.Enabled)
{
phrase = "Voice Disabled";
}
else
{
speech.SelectVoice(neededVoice.VoiceInfo.Name);
}
speech.Speak(phrase);
#endregion
}
}
}
窗体代码
private void Form1_Load(object sender, EventArgs e)
{
dtboxTime.Value = DateTime.Now;
timer1.Enabled = true;
m_TodayDate = DateTime.Now;
}
类声明
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Media;
using System.Text;
using System.Windows.Forms;
public System.Media.SoundPlayer music = new SoundPlayer(Directory.GetCurrentDirectory() + "\\江子牙-闹钟.wav");
DateTime m_TodayDate;
string conf = "test.txt";
Speedch_T speak = new Speedch_T();
string ts;```