代码改变世界

随笔档案-2011年12月14日

C# 使用DotNetSpeech.dll实现文本朗读

2011-12-14 22:27 by Andrew.Wangxu, 3908 阅读, 收藏,
摘要: Xp可能不支持中文发音,这点需要注意下。 vista以上版本的windows是可以的。 依然上图上代码: //获取选择的速度 private int GetSpeedSelected() { if (rbtnFast.Checked) { return 2; } if (rbtnNomal.Checked) { return 0; } if (rbtnSlow.Checked) { return -3; } return 0; } 阅读全文

C# AndrewUtil.dll 在小博中发布&分享(翻译组件)

2011-12-14 21:04 by Andrew.Wangxu, 1226 阅读, 收藏,
摘要: AndrewUtil.dll (Version:1.0.0.0)提供了在实际项目中经常会使用的一些函数封装。 在这个第一个版本中,其中包含了邮件发送、DBHelper、以及N多实用函数。。 第一次发布,推崇一个AndrewUtil.dll 控件中的 翻译组件 分享给博友,欢迎拍砖指导。 有了这个组件之后,要实现翻译功能是非常的简单的一件事情,2行代码即可(当然,这里为了程序稳健一点,我们写一些判断,让程序体验更佳) 下面上图,上代码。 阅读全文

C# 关于使用OpenFileDialog 默认路径被重置的问题。

2011-12-14 09:47 by Andrew.Wangxu, 645 阅读, 收藏,
摘要: 没测试过在主线程中使用会不会出现以下问题,但是我在新建的一个线程中出现了以下问题: 1:当使用该控件后,默认路径被修改。。 也就是说,程序中所有的默认路径基本都无法使用,因为路径变了。 解决方案及其简单。。。搞了好久 终于找到原因,如何恢复默认路径。。。 将控件的RestoreDirectory属性设置True 即可。。 阅读全文

关于自定义通知事件的跨线程问题(转)

2011-12-14 00:03 by Andrew.Wangxu, 566 阅读, 收藏,
摘要: [知识背景] 所谓自定义通知事件,就是指在自己的类中定义的事件,该事件用于向调用者发出通知。比如做一个下载工具,下载是需要时间的,用户在界面里点击“下载”之后,我的下载类在后台开启线程开始传输数据,前台界面上可以同时执行其他操作。当数据传输完成,需要通知界面(调用者)已完成下载,以便界面上做相应的改变。这就需要在我的下载类中有类似 DownloadCompleted 的事件,这样在用户的代码中可以通过 downloader.DownloadCompleted += new new EventHandler(XXXXX) 进入他自己的事件处理函数。 这里说的跨线程问题,是指非法的跨线程调用问题。还用上个例子,在下载完成时,需要改变界面中 Label 控件的 Text 属性以提示用户下载完成。这就牵涉到在另一个类所创建的线程中操纵UI线程中创建的控件。这种做法在 .NET 中是不推荐的,同时这样会严重影响代码质量。(可参考MSDN:ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_fxmclictl/htm 阅读全文