国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#實現備忘錄功能

2019-10-29 21:07:12
字體:
來源:轉載
供稿:網友

一、簡述

      備忘錄,相信大家生活中都使用過,比如記筆記、手機備忘錄等等,這些都是記錄自己靈感時所想、定期內想做的事情,好像跑題了,說說我的備忘錄吧,我的備忘錄功能上也就是增刪改查的操作,另加到時提醒、語音播放內容,很簡單吧,但是實用,好了,想看設計點吧。 

二、設計

1、數據庫設計

       數據庫用的是SQLite

       數據庫表:Sys_Kind、Memorandum

       Sys_Kind是一個通用字典表,這個對初學者有幫助,如下圖:

C#,備忘

C#,備忘

解析:ID不用說了,自增的標識,K_Name:字典名稱,K_Parent:父類型標識,就是說如果K_Parent為0,那么它就是一個類型,然后子字典就以它作為父類,這個字段鍵入父類ID值即可,K_Sort排序就是單個類型的排序,或者你也可以將所有數據作為排序也行,K_AddTime添加時間,K_Desc字典描述,這樣可以便于后來的人查看這個是用來干什么的,K_State字典狀態,這個呢,可以靈活應用,用來是否顯示某個字典或者其他多狀態都可以,K_Code字典代碼值,這個就很重要了,這個就用作字典的值,很多人或許會問,為什么不用自增ID呢,因為如果類型很多的情況下,這個ID值會越來越大,你定義的類型值本身沒有幾個,而它的值還這么大,何必呢,旁邊這個表就是備忘錄表,我就不解釋了,自己慢慢體會。

2、程序設計(上圖)

C#,備忘

C#,備忘

這個呢,大家都知道哈,就是普普通通的增刪改查,沒什么大的技術含量

三、核心技術

1、自動查詢備忘錄

這一塊呢,相信大家都知道,可以用Timer這個控件,的確可以用Timer,當然這里,我用的不是Timer控件,而是System.Threading.Timer這個類,當然需要了解相關的用法,大家可以百度搜索,也可以去這兒https://msdn.microsoft.com/zh-cn/library/system.threading.timer(v=vs.110).aspx看看,當然我也貼出代碼,讓大家參考一下。

 

//聲明一個委托private delegate void SetTimerLogicCallback();//聲明一個定時器的類private System.Threading.Timer threadTimer;//執行委托的方法,ShowMemorandumInfo是查詢數據庫的方法private void ThreadMethod(object obj)    {      SetTimerLogicCallback timerLogic = new SetTimerLogicCallback(ShowMemorandumInfo);      this.Invoke(timerLogic);    } /// <summary>    /// 定時器設置,這個方法或者這段代碼可以寫在窗體加載的時候    /// </summary>    private void TimerSet()    {       threadTimer = new System.Threading.Timer(new System.Threading.TimerCallback(ThreadMethod), null, 0, 1000);    }

2、語音播報內容

這塊我用了兩個方面的技術,一個就是微軟自帶的System.Speech.Synthesis.SpeechSynthesizer語音識別的類,第二個就是百度提供的語音識別接口,為什么用兩個呢,如果我們用戶機上面沒網,那么就可以使用微軟自帶的語音識別功能,如果用戶機沒裝微軟的語音識別,那么就可以使用百度的語音識別接口,如果沒網、機器也沒裝微軟的語音識別,那么你可以打包程序自動裝微軟自帶語音識別的安裝包或者其他插件異或組件,當然,這個安裝包肯定比你的程序大很多,估計現在除了用xp的,win7的沒有幾個沒自動裝語音識別的吧,好了,下面就是代碼:

 

/// <summary>    /// 微軟語音識別    /// </summary>    /// <param name="content">提示內容</param>    public static void SpeakAsync(string content)    {      try      {        if (synth != null)          synth.Dispose();        synth = new System.Speech.Synthesis.SpeechSynthesizer();        synth.SpeakAsyncCancelAll();        synth.SpeakAsync(content);      }      catch (Exception ex)      {        throw ex;      }    }    /// <summary>    /// 百度語音合成(文檔網站:http://yuyin.baidu.com/docs/tts/197)    /// </summary>    private void BaiduTts(string audioText)    {      _ttsClient = new Baidu.Aip.Speech.Tts("API_KEY", "SECRET_KEY ");      // 可選參數      var option = new Dictionary<string, object>()        {          {"spd", 5}, // 語速          {"vol", 7}, // 音量          {"per", 4} // 發音人,4:情感度丫丫童聲        };      var result = _ttsClient.Synthesis(audioText, option);      if (result.ErrorCode == 0)      {        string fileName = Application.StartupPath + "//" + Guid.NewGuid().ToString() + ".mp3";        System.IO.File.WriteAllBytes(fileName, result.Data);        axWindowsMediaPlayer1.URL = fileName;        axWindowsMediaPlayer1.Ctlcontrols.play();        System.IO.File.Delete(fileName);      }      else      {        Utils.LogMessage("百度語音合成異常", result.ErrorMsg);      }    }

 總結:這是一個簡單的備忘錄程序,歡迎初學者學習,大神就隨便看看就行了,歡迎大家點贊轉發

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 招远市| 镇赉县| 大悟县| 枣阳市| 大庆市| 五寨县| 新昌县| 安吉县| 通辽市| 浏阳市| 涿鹿县| 新源县| 海淀区| 翁牛特旗| 贵溪市| 伊川县| 安泽县| 甘洛县| 临桂县| 伊春市| 绵竹市| 博兴县| 太和县| 河间市| 邹平县| 红安县| 柳州市| 兴海县| 临潭县| 荆州市| 古田县| 吴忠市| 河北省| 肇庆市| 霞浦县| 阿克陶县| 江北区| 九龙城区| 神池县| 来安县| 咸宁市|