随笔-8  评论-8  文章-0  trackbacks-0
  2012年5月2日
摘要: 写程序时经常要给程序设置各种素材资源,虽然一直使用,却是一直不知其所以然。今天偶然才发现其中的小秘密,赶紧记录下来,以备学习之用。阅读全文
posted @ 2012-05-02 10:35 RoyYu 阅读(14) 评论(0) 编辑
  2012年4月6日

今天做树视图显示数据的时候,准备把树视图中第一级节点设成小四号粗体,第二级节点设成五号字体。

 在代码中更改Node的字体字号以后,发现节点名的后半部分显示不出来

    node.NodeFont = new Font("宋体", 12,FontStyle.Bold);

开始以为是什么属性设置的不对,后来改了半天也没弄出个所以然;又在网上草草看了一些网友的日志也没有找到明确的说法;

后来还是在msdn(http://msdn.microsoft.com/zh-cn/library/ie/system.windows.forms.treenode.nodefont)上看到了这样一句话,才解开了心中的疑团:

   如果节点字体大于在 TreeView 控件中设置的 Font 属性值,则将剪裁树节点标签文本。

   原来我的TreeView中默认的是五号宋体(10.5磅),而代码中改成了12磅的粗体,所以节点标签文本被裁剪掉了。

   把TreeView中默认的字体设为12磅粗体,第二级节点字号在代码中改为10.5磅常规字体,通过!

posted @ 2012-04-06 09:53 RoyYu 阅读(30) 评论(2) 编辑

      前面一篇在讲删除影像文件时,顺带提了一下删除shp文件的操作,但是自己没有试,今天正好手头的任务要判断是否存在同名shp文件并替换,于是就试了试,结果与猜想基本一致,最后顺利通过。上代码:

       IWorkspaceFactory pWSF = new ShapefileWorkspaceFactoryClass();
       IFeatureWorkspace pFWS = pWSF.OpenFromFile(pathName,0) as IFeatureWorkspace ;//pathName为路径名

       IFeatureClass pFeaCls = pFWS.OpenFeatureClass(fileName);//fileName为文件名(不包含路径)
       IDataset pFeaDataset = pFeaCls as IDataset;
       pFeaDataset .Delete();

 

      这里与原设想的出入就在于,原来想的很简单,直接打开为FeatureDataset,再删除就可以了,可是发现不行,原因应该是shp文件直接就是一个FeatureClass,其FeatureDataset属性为空,所以只能打开为FeatureClass,再转成FeatureDataset删除。还是对esri的数据存储机制太不了解啊!

posted @ 2012-04-06 09:07 RoyYu 阅读(38) 评论(5) 编辑
  2012年1月3日

  当利用AE生成tiff、img等格式的影像文件时,需要检查是否存在同名文件,如果存在则替换原有文件。这里如果直接用System .IO .File .Delete (string path)方法删除原有文件会报错,这是由于该方法并没有完全清除影像文件附带的文件(如.aux,.rrd等),导致生成新文件时发生冲突。

后来发现其实AE提供了自己的文件删除方法,就是先打开数据集,再调用数据集的Delete方法即可,代码如下:

                        IWorkspaceFactory pWSF = new RasterWorkspaceFactoryClass();
                        IRasterWorkspace pRWS = pWSF.OpenFromFile(pathName,0) as IRasterWorkspace;//pathName为路径名
                        IDataset pDataset = pRWS.OpenRasterDataset(fileName) as IDataset;//fileName为文件名(不包含路径)
                        pDataset.Delete();

  对于矢量的shp文件,并没有进行尝试,以前是使用System .IO .File .Delete (string path)方法将shp格式数据包含的六个文件全部删除,现在想来应该也可以使用这种方式。

 

希望能为您带来帮助!

posted @ 2012-01-03 10:43 RoyYu 阅读(52) 评论(1) 编辑
  2011年8月10日
摘要: BackgroundWorker是一个在System.ComponentModel命名空间下的帮助类,用于管理工作线程。它提供了以下几个重要的特性: 1)“cancel”标记,可以在不使用Abort的情况下给工作线程打信号终止工作线程(调用CancelAsync方法)。 2)提供报告进度、完成度和退出的标准方案 3)实现了IComponet接口,允许它参与Visual Studio设计器:可以直接从工具箱中拖出而不必写代码进行实例化 4)在工作线程上做异常处理 5)更新Windows Forms 控件以应答工作进度或完成度的能力阅读全文
posted @ 2011-08-10 10:05 RoyYu 阅读(393) 评论(0) 编辑
摘要: 在设计自定义控件时,系统默认生成的图标比较单一难看,如何为控件设计自己的图标呢,这里给出了一种基于ToolBoxBitmap 属性设置自定义控件工具箱图标的方法。阅读全文
posted @ 2011-08-10 09:55 RoyYu 阅读(305) 评论(0) 编辑
摘要: 在程序设计中有时候需要动态订阅客户自己的事件,调用完成后又要删除以前订阅的事件。因为如果不删除,有时会造成事件是会重复订阅,导致程序运行异常。一个办法是用反射来控件事件列表。阅读全文
posted @ 2011-08-10 09:53 RoyYu 阅读(202) 评论(0) 编辑
摘要: Visual Studio平台中只给出了一些常见的光标,如何在应用程序中使用自己定义的更加专业美观的光标呢?这里Visual Studio并没有给出现成的支持,不过可以通过调用API函数来实现目标,ok,下面看看该怎么做吧!阅读全文
posted @ 2011-08-10 09:44 RoyYu 阅读(571) 评论(0) 编辑
仅列出标题