今天做树视图显示数据的时候,准备把树视图中第一级节点设成小四号粗体,第二级节点设成五号字体。
在代码中更改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磅常规字体,通过!
前面一篇在讲删除影像文件时,顺带提了一下删除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的数据存储机制太不了解啊!
当利用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格式数据包含的六个文件全部删除,现在想来应该也可以使用这种方式。
希望能为您带来帮助!