
.NET
文章平均质量分 70
dreamgis
这个作者很懒,什么都没留下…
展开
-
LINQ 查询简介(MSDN)
查询是一种从数据源检索数据的表达式。查询通常用专门的查询语言来表示。随着时间的推移,人们已经为各种数据源开发了不同的语言;例如,用于关系数据库的 SQL 和用于 XML 的 XQuery。因此,开发人员不得不针对他们必须支持的每种数据源或数据格式而学习新的查询语言。LINQ 通过提供一种跨各种数据源和数据格式使用数据的一致模型,简化了这一情况。在 LINQ 查询中,始终会用到对象。可以使用相同的基原创 2023-01-04 17:52:14 · 398 阅读 · 0 评论 -
C# WORD操作实现代码
在当前项目开发过程中,客户有根据数据库数据生成WORD文档的需求,在和同事沟通的过程中,找到了两个解决方案1.先通过程序生成报表样式的HTML页面,然后修改HTML页面的后缀名为DOC。2.定制WORD文档的模板文件,在C#中操作WORD模板,生成新的WORD文档。第一方案简单,只需要改动文件的扩展名就行了,但是也存在了一些问题,譬如生成的WORD文档样式的丢失。这样对于客户来说可原创 2023-01-04 17:51:34 · 902 阅读 · 0 评论 -
C# 逆变与协变
该文章中使用了较多的 委托delegate和Lambda表达式,如果你并不熟悉这些,请查看我的文章《委托与匿名委托》、《匿名委托与Lambda表达式》以便帮你建立完整的知识体系。在C#从诞生到发展壮大的过程中,新知识点不断引入。逆变与协变并不是C#独创的,属于后续引入。在Java中同样存在逆变与协变,后续我还会写一篇Java逆变协变的文章,有兴趣的朋友可以关注一下。逆变与协变,听起来很抽象、高深,其实很简单。看下面的代码:class Person { } clas转载 2021-11-23 18:56:35 · 374 阅读 · 0 评论 -
C# 反射、与dynamic组合
在 C# 中反射技术应用广泛,至于什么是反射.........你如果不了解的话,请看下段说明,否则请跳过下段。广告一下:喜欢我文章的朋友请关注一下我的blog,这也有助于提高本人写作的动力。反射:当你背对一个美女或帅哥却不能回头仔细观察研究时(纯属虚构,如有巧合、纯属雷同),一面小镜子就能满足你的需求。在 C# 编程过程中也经常遇到类似的情况:有一个别人写的 dll 类库你想使用却没程序文档资料......此时通过 C# Runtime 提供的功能,你可以把该 dll 类库加载到你的程序中,并细细研究转载 2021-11-23 18:55:05 · 686 阅读 · 0 评论 -
C# 匿名对象(匿名类型)、var、动态类型 dynamic
本文是要写的下篇《C#反射及优化用法》的前奏,不能算是下一篇文章的基础的基础吧,有兴趣的朋友请关注一下我的blog,这也有助于提高本人写作的动力。随着C#的发展,该语言内容不断丰富,开发变得更加方便快捷,C# 的锋利尽显无疑。C# 语言从诞生起就是强类型语言,这一性质到今天不曾改变,我想以后也不会变。既然是强类型语言,那编写任一程序均要求满足下面的基本条件:1、变量声明必须指明其类型2、变量类型明确后,其类型在Runtime亦不能改变代码如下: public class S转载 2021-11-23 18:41:41 · 1411 阅读 · 0 评论 -
C#枚举中的位运算权限分配
转自:https://www.cnblogs.com/steden/p/4605768.html什么是位运算常用的位运算主要有与(&), 或(|)和非(~), 比如:1 01 & 00 = 00;2 01 | 00 = 01;3 ~01 =0 0;运用在权限设计中 先建立一个枚举表示所有的权限管理操作:1 [Flags] 2 public enum Permissions 3 { 4 Insert = 1, 5 Delete转载 2020-07-17 16:04:00 · 319 阅读 · 0 评论 -
invokeMember object does not match target type错误解决办法
有个项目中需要将C#写的dll中产生一个事件event,然后C++程序调用,并注册回调事件。触发事件的时候,报了个错,而在开发者机器上又没有出现,开始以为是环境问题,可是又找不到具体是哪个环境没装,最后将vs在目标机器上装了,还是不行,,,结果是将C#程序在那机器上编译一逼,才没有出现。。。所以这个问题还是没有解决(不可能每个机子都去编译一遍吧!!!)网上找了很久,终于在bing上搜到一个帖子...原创 2020-02-26 17:50:56 · 2632 阅读 · 0 评论 -
propertyGrid动态添加属性
继承、实现下边的类和接口PropertyDescriptorICustomTypeDescriptorhttps://www.jb51.net/article/54901.htm 有demohttps://blog.youkuaiyun.com/sutoncai/article/details/77891917 有demohttps://www.cnblogs.com/greatverve...原创 2019-11-11 20:30:16 · 1298 阅读 · 0 评论 -
devexpress属性控件propertyGridControl propertyDescriptionControl绑定
For an object's properties, descriptions can be specified via theSystem.ComponentModel.DescriptionAttributeattribute, ThePropertyGridControldoesn't display property descriptions. To display proper...转载 2019-11-09 13:27:55 · 2501 阅读 · 0 评论 -
使用PopupContainerEdit和PopupContainerControl制作下拉面板
DevExpress中提供了很多功能强大的控件,这节我们看看DevExpress中的下拉弹出控件PopupContainerControl的用法.主要功能是在界面中点击下拉箭头,弹出下拉弹窗控件,选择完数据后关闭弹窗。主要用到的控件有 PopupContainerEdit和PopupContainerControlPopupContainerControl主要负责显示下拉弹窗中的内容...转载 2019-11-01 20:03:30 · 1926 阅读 · 0 评论 -
【转】TableLayoutPanel的RowSpan和ColumnSpan的使用
使用WinForm的TableLayoutPanel进行开发时,编辑器提示合并列和行可以使用RowSpan和ColumnSpan,但是找了半天也没找到,在偶然的情况下,发现这是怎么弄的了,呵呵,分享给大家。方法如下:把TableLayoutPanel拖到窗体上,然后再拖一个Panel,把panel放到TableLayoutPanel的单元格中,选中Panel,看看属性框中,是不是有了Colum...转载 2019-11-01 20:01:37 · 1089 阅读 · 0 评论 -
短路运算符
短路运算符一般有:&&、||,其原理是:当有多个表达式时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值。$.fn.highlight2 = function (options) { // 要考虑到各种情况: // options为undefined // options只有部分key var bgcolor = options ...原创 2019-10-30 11:35:58 · 4111 阅读 · 0 评论 -
【网络扫盲】TCP接收数据的长度是未知的
长度是不知道的,所以通常的做法是,将长度放在最前的4个字节,或者包头里面,等解析了长度后,在根据长度(接收并)解析得到数据体。但Udp好像是可以得到长度的各种参考链接:https://www.cnblogs.com/gccbuaa/p/6791867.html C#网络编程系列文章https://www.cnblogs.com/jhlong/p/5799248.html原创 2018-01-27 16:46:59 · 2923 阅读 · 0 评论 -
C#启动其它程序
private void StartProcess(string fileName) { using (Process pro = new Process()) { FileInfo file = new FileInfo(fileName); //在windows服务里原创 2016-12-23 16:53:06 · 617 阅读 · 0 评论 -
C#复杂对象序列化,推荐二进制
复杂对象用xml序列化,一会儿这里不对,一会儿那里不对,直接用二进制分分钟搞定,++xml序列化答疑 (1)需序列化的字段必须是公共的(public) (2)需要序列化的类都必须有一个无参的构造函数 (3)枚举变量可序列化为字符串,无需用[XmlInclude] (4)导出非基本类型对象,都必须用[XmlInclude]事先声明。该规则递归作用到子元素转载 2017-08-16 11:46:36 · 1659 阅读 · 0 评论 -
C# Directory.GetFiles()获取多个类型格式的文件
转自:http://www.cnblogs.com/songxingzhu/p/6000070.html第一种方式System.IO.Directory.GetFiles()获取多个类型格式的文件System.IO.Directory.GetFiles("c:\","(*.jpg|*.bmp)"); 第二种方式var files = Directory.Get转载 2017-07-25 13:32:57 · 11035 阅读 · 3 评论 -
log4net自动删除日志文件【实现】
根据上一篇的思路,简单完成了根据时间设置,自动删除过期的日志文件,测试代码链接如下:http://download.youkuaiyun.com/download/dreamgis/10035539直接在log4net的配置文件中添加一个属性,用来设置过期时间长度(单位:天),见下图:我这里测试,设置过期时间是5天,效果如下图:原创 2017-10-23 10:32:54 · 15578 阅读 · 2 评论 -
log4net自动删除日志文件,摸索记录
我的需求,跟这位网友一样,想让日志文件自动被删除掉,只保留最近一段时间的。转自:http://bbs.youkuaiyun.com/topics/370171242=============网友需求start===========如何控制log4net写日志文件的数量就是其他配置我都已经配置好了,能达到我的要求,日志文件是按日期产生的,如:Log2010.04.07.log,Log2010.04.原创 2017-10-16 16:41:45 · 7584 阅读 · 0 评论 -
datagridview设置列宽按列标题自动调整
dataGridSignal.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.ColumnHeader;后还不够!!dataGridSignal.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing很重要,设置后原创 2016-11-19 12:31:08 · 5565 阅读 · 0 评论 -
C#OpenFileDialog会改变当前路径
先用OpenFileDialog选择了一个文件"c:\\work\\aaa.txt",然后在某个地方用了相对路径比如 string file = "Service.xml"。就是将文件路径设置为exe文件路径。当此时系统如果是XP,则所谓的当前路径已经变为了c:\\wrok\\。所以此时xml文件的路径为c:\\work\\Service.xml。而且这个bug在win7上没有,所以就很坑啦,原创 2016-07-06 20:13:36 · 1789 阅读 · 0 评论 -
已添加了具有相同键的项。
Winform设置控件的背景Image属性时,弹这个错“已添加了具有相同键的项”。反复折腾一个小时,发现是我把Resources.resx文件从Property文件夹里面挪出来了,然后VS就找不到了,还乱提示。原创 2016-07-06 10:43:17 · 12586 阅读 · 1 评论 -
C#读写配置文件
C#读取配置文件在程序中读取和更新App.config中的配置信息:1,添加引用System.Configuration;2,添加using System.Configuration;3,代码 string connStr = ""; ConfigurationManager.RefreshSection("AppSettings原创 2012-07-04 18:28:56 · 1245 阅读 · 0 评论 -
C#遍历文件夹,只需一句话
一个函数搞定,都不用去考虑递归(以前居然不知道),太强大了。string[] files = System.IO.Directory.GetFiles(_dir, "*.*", System.IO.SearchOption.AllDirectories);System.IO.SearchOption.AllDirectories表示搜索本文件夹和所有子目录,很碉堡吧。"*.*"原创 2016-02-14 18:53:43 · 3698 阅读 · 2 评论 -
C# Winform ToolStripContainer ToolStrip相关用法记录
用过VS的都知道,顶部有很多工具条,可以显示隐藏,也可以拖来拖去。这个在winform里面就是用ToolStripContainer实现的。如何使用,网上帖子多得是,这里记录一下我被坑的地方。1、ToolStripContainer的高度随着toolstrip的拖动发生变化,也就是说,当toolstrip工具条之前是两行排列,现在拖为一行,这时如果不做任何处理,ToolStripContain原创 2015-06-11 11:42:02 · 20945 阅读 · 0 评论 -
Arcgis engine开发常见报错解决办法
1,正尝试在 OS 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。解决办法:在Visual Studio中进行相应设置,调试=》异常=》展开Native Run-Time Checks=》LoaderLock节点,取消“引发(T)”的勾选。原创 2014-03-13 15:36:04 · 2457 阅读 · 0 评论 -
C# winform只能输入数字等等一系列基础扫盲
/// /// 只能输入数字(含负号小数点) /// /// /// public static void OnlyEnterNumber(object sender, KeyPressEventArgs e) { if ((e.KeyChar 57) &转载 2015-05-21 17:44:19 · 1475 阅读 · 0 评论 -
C# DataGridView隔行变色&鼠标经过改变形状、固定行高、行号、列自动填充等等
设置数据列表控件隔行变色只需两句代码即可搞定,非常舒服。dataGridViewX1.RowsDefaultCellStyle.BackColor = Color.FromArgb(237, 243, 254);dataGridViewX1.AlternatingRowsDefaultCellStyle.BackColor = Color.FromArgb(199, 237, 204);...原创 2012-10-17 14:30:06 · 3072 阅读 · 0 评论 -
TreeView CheckBox勾选联动
转自:http://www.cnblogs.com/excellently/p/TreeViewCheckBox.html 在C# Winform项目中用到了TreeView控件,并且需要勾选的功能。父子节点联动,需要实现如下: 1.当选中父节点的时候,如果它的子节点有没有选中的,则选中。 2.当取消选中父节点的时候,将所有子节点都取消选中。 3.当选中子节点的时候,要判断...转载 2018-03-20 17:12:44 · 1295 阅读 · 0 评论 -
【相当基础】DateTime一些用法,DateTimePicker只显示月
控件 -> 属性 1. 然后在 外观 的 Format 选择 定制 2. 行为 的 CustomFormat 输入 yyyy 年 MM 月3. ShowUpDown 更改为 True 即可 完美的 定制出 仅有 年和月. 适用于 仅 需要 年月的控件. 算指定的月有多少天,方法很多,这里列举了两个var time = dateTimePicker1.Value; var sp...转载 2018-04-19 15:22:17 · 5274 阅读 · 0 评论 -
ataSet、object 与 Byte[]二进制 互转
转自:http://blog.sina.com.cn/s/blog_620782850100mdsf.html //MemoryStream: 创建其支持存储区为内存的流。 //IFormatter : 提供将序列化对象格式化的功能。 //DataSet转二进制byte public static byte[] GetBinaryFo转载 2013-07-26 12:28:28 · 1104 阅读 · 0 评论 -
WPF中Window的ShowInTaskbar、Owner和Topmost属性
转自:https://www.cnblogs.com/tommy-huang/p/5081852.html1. ShowInTaskbar:设置窗口是否在任务栏上有一席之位,默认为true, 当在父窗口上新开一个子窗口时,任务栏上就会出现两个窗口,所以当要实现 不管开启多少个窗口,在任务栏上都只显示一个窗口时,就需要将子窗口的ShowInTaskbar设...转载 2019-09-11 17:39:22 · 1248 阅读 · 0 评论 -
MeasureAction是利用旧版本的 Blend SDK 构建的 并且在 Windows Presentation Framework 4 项目中不受支持
我是在用VS2015的开发的时候遇到的,用到了ArcGIS SDKs WPF10.2.5其中的MeasureAction,在xmal语句里面报错,后来在这篇博客里面找到类似的解决办法。链接:https://www.cnblogs.com/growingzx/p/8390899.html=====================================================...原创 2019-09-03 20:18:33 · 1360 阅读 · 0 评论 -
png数据体字节流转png图片
MemoryStream DBmemory = new MemoryStream();var image = Image.FromStream(new MemoryStream(data));//data是没有头信息和其它信息的字节流image.Save(DBmemory, ImageFormat.Png);dataImage = DBmemory.ToArray();dataI...原创 2019-04-24 19:05:41 · 1451 阅读 · 0 评论 -
datagridview CheckBox复选框
通过代码改变复选列的勾选状态,发现该写的代码都写了,就是没效果,猜测是没刷新的原因:后边试了下RefreshEdit(),果然有效。 //遍历datagridview中的每一行,判断是否选中,若为选中,则选中 for (int i = 0; i < dataGridView1.Rows.Count; i++) { ...原创 2019-03-20 15:28:19 · 3878 阅读 · 0 评论 -
程序自动重启,udp服务关闭
这两个问题本身没有什么联系,但我要自动重启的程序里面有个udp服务,也遇到些问题,所以一起记录下。1】自动重启实现的方法有多种,比如方法一:,调用其它程序A把自己(程序B)关闭,A再启动B,通过参数的形式将自己的exe文件路径发给A,好多软件的自动更新都是这种实现机制,启动程序的时候检查更新,如果发现有新版,再调用Updater.exe下载并完成相关文件的更新,再启动。我在C#中用...原创 2019-02-21 14:27:22 · 1551 阅读 · 0 评论 -
隐藏winform的tabControl标题
tabControl1.Appearance = TabAppearance.FlatButtons; tabControl1.SizeMode = TabSizeMode.Fixed; tabControl1.ItemSize = new System.Drawing.Size(0, 1);原创 2019-01-16 14:15:54 · 927 阅读 · 0 评论 -
.NET的timer
转自:http://www.cnblogs.com/lionden/archive/2012/12/25/2832132.html一、Timer是定时器C#中常用的Timer有:System.Threading.Timer 非常轻量级,用回调函数引发,在线程池执行; 希望在另一个线程上定时执行后台任务; 不建议用于Windows窗体,因为其回调不再用...转载 2018-11-29 17:54:43 · 607 阅读 · 0 评论 -
定时器,多线程,重入函数(方法)
问题:在多线程的线程函数,或者定时器的处理函数中,当上一次执行没完成,下一次调用又来的,就会产生方法重入问题。重入函数内部如果有类变量或者全局变量,就会产生同步问题,或者其它io操作,读写数据库等,都会有问题。注意:因为C#有三类定时器,其中的winform.timer属于UI线程(主线程)的消息循环,是一个单线程调用的函数,是按顺序执行,所以消息函数没处理完,后面来的,都会放到消息队列堆...转载 2018-11-29 17:32:17 · 822 阅读 · 0 评论 -
postgresql数据库错误FATAL: 28000: no pg_hba.conf entry for host "192.168.1.23", user "postgres", database
FATAL: 28000: no pg_hba.conf entry for host "192.168.1.23", user "postgres", database "sde", SSL off问题出现原因:pg数据库和访问数据库的客户端不在同一台机子上,然后保存我遇到的情况,pg装在了192.168.1.11上,访问pg的程序在192.168.1.23上,建立数据库连接的代码报错,...原创 2019-04-17 13:46:11 · 10726 阅读 · 0 评论 -
C#保留几位小数
string.Format("{0:#.0}MHz, {1:N1}°", uav.fFreq, uav.fAzimuth);string.Format("目标经度:{0:N4} 纬度:{1:N4}", point.X, point.Y);//复制当前坐标到剪贴板。Clipboard.SetDataObject(string.Format("{0:#.00000}, {1:#.00000...原创 2018-08-31 09:52:16 · 2658 阅读 · 0 评论