摘要: PropertyGrid,提供用于浏览对象属性的用户界面。在WinForm设计界面,点击某一个控件,选择“属性”页,可以看到控件的各个属性与对应的值,而用于展示这些信息的,就是PropertyGrid控件。 我们在进行WinForm程序设计与调试的时候,当需要修改控件的属性,如文本颜色、背景颜色、文本内容时,我们只能停止调试,重新设置属性再调试;有时候还要获取控件无法直接显示的属性,如位置,大小,Padding等,只能设置断点查看。 其实,这些可以通过PropertyGrid控件来实现。 比如你的窗体中有一个按钮button1,你需要知道用什么字体、颜色、位置,那么,可以在你的窗体适当位置放入一个PropertyGrid控件,然后设置PropertyGrid.SelectedObject=button1;运行你的程序,这时候你修改PropertyGrid里面的字体,将会发现,button1的字体被改变了;如果有别的代码将button1.Enable设置为false,也可以在PropertyGrid看到,甚至你还可以把它改回true! 所以,妙用PropertyG 阅读全文
posted @ 2013-05-14 17:26 季风哥 阅读(942) 评论(0) 推荐(0) 编辑
摘要: 一个数据库表(id,name,…)中有10万条记录,查找name=’guoguo‘可能需要很长时间,但是如果对name建立了索引,那么再用name=’guoguo‘来查询将变得非常快(有多快?自己可以去试试)。 相应的,有时候我们的代码里面会用到List,Array来存储一组数据。我们以一个例子来说明一下。 阅读全文
posted @ 2013-05-14 14:30 季风哥 阅读(6589) 评论(1) 推荐(0) 编辑
摘要: 在Explorer中,选择“详细”视图,可以看到很多文件属性,如图片的分辨率,MP3的艺术家、比特率,视频文件的分辨率等等等等;这些数据,有时候在C#中可能很难获取,比如图片的分辨率,需要用Image.FromFile得到Image类,然后才能得到分辨率数据,但是把图片加载到内存中,一是会加大内存开销,二是会更耗时。所以,今天我们就来说说怎么在C#中获取到文件的详细属性。 阅读全文
posted @ 2013-05-14 13:07 季风哥 阅读(4548) 评论(0) 推荐(1) 编辑
摘要: C#中,复制文件的操作十分简单,System.IO.File.Copy()。但是用过的同学都知道,这个方法在复制大文件的时候非常不好用,因为它会阻塞当期线程直到文件复制完毕,要终止也麻烦(把复制操作放到线程中,通过终止线程来终止操作)。如果能使用Explorer中复制文件时的对话框,就能直观的显示复制进度,并且能随时取消复制操作。 要实现Explorer中复制粘贴时的对话框,可以自己编写相关代码,使用异步读写文件字节流的方式来复制文件,这种方式我们今天就不讨论了; 另外一种方法,是使用Windows API SHFileOperation来达到目的; 阅读全文
posted @ 2013-05-13 17:35 季风哥 阅读(2220) 评论(3) 推荐(1) 编辑
摘要: 双击一个WinForm程序,会打开一个界面,也即运行了一个程序的实例;双击多次的时候,会出现多个程序界面。有时候我们需要只允许程序只能同时运行一个实例。实现方式有很多。 阅读全文
posted @ 2013-05-13 14:39 季风哥 阅读(3905) 评论(0) 推荐(2) 编辑
摘要: 前段时间下载了一个安卓应用“明星整点报时”,觉得挺好用。就想自己动手写一个Windows上的报时软件; 报时分两种: 明星报时,也就是播放固定的语音文件; 语音报时,通过文字转语音达到目的; 阅读全文
posted @ 2013-05-10 09:52 季风哥 阅读(1310) 评论(2) 推荐(0) 编辑
摘要: 这里的UTC定义是:UTC时间距离1970年1月1日0时0分0秒的秒数! 阅读全文
posted @ 2013-05-09 17:51 季风哥 阅读(4425) 评论(0) 推荐(1) 编辑
摘要: 双击一个txt文件,就能用记事本打开,因为txt文件关联了记事本程序。 想让你自定义的文件类型也通过双击就能直接调用你的程序并打开? 阅读全文
posted @ 2013-05-09 15:50 季风哥 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 上一期我们给文件类型自定义了图标文件: Registry.SetValue(@"HKEY_CLASSES_ROOT\MyGuo\DefaultIcon", "", @"D:\bin\Guo.ico"); 如果需要定义的文件类型很多(比如播放器要定义avi,mp4,flv等很多视频格式图标),那就需要一堆的ico文件。如果哪天程序的使用者把某个ico文件删除了,那么在Explorer中将显示为那个丑爆的默认图标。所以,把所有ico文件打包到exe文件中是一个不错的方法。 阅读全文
posted @ 2013-05-09 15:29 季风哥 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 一个exe或者dll文件可以包含多个图标资源,比如windows系统的user32.dll,win7下的C:\Windows\System32\imageres.dll文件,这些图标资源可以被应用于快捷方式和默认图标等,也可以作为一个打包的资源文件,这样你的程序就不用包含一大堆.ico文件了。 在开始怎么创建之前,我们首先看看怎么查看exe或者dll里面的图标资源; 阅读全文
posted @ 2013-05-09 14:57 季风哥 阅读(1816) 评论(1) 推荐(2) 编辑
摘要: 在windows上,不同的文件扩展名会显示不同的图标。但是如果你的程序使用了自己定义的一种文件扩展名(比如.guo),windows发现其为“未知类型”时,会显示一个默认的未知类型图标,既不好看又不容易在一堆文件中快速找到你的文件。 所以,本文将介绍怎么通过注册表来实现更改文件的默认图标。 阅读全文
posted @ 2013-05-09 14:41 季风哥 阅读(781) 评论(1) 推荐(0) 编辑