C#
文章平均质量分 77
LettoMJ
这个作者很懒,什么都没留下…
展开
-
*.vshost.exe的一些问题
问题: 在开发项目过程中可能存在很多工程,其中就涉及到文件的原创 2014-07-07 10:54:35 · 2017 阅读 · 1 评论 -
微软资源网站
http://itellyou.cn/?lang=zh-cn原创 2014-03-14 21:40:35 · 669 阅读 · 0 评论 -
C#控件开发---控件属性编辑器
最近项目需要用到自定义控件的属性需要多选,我们知道默认的属性一般都是下拉输入之类的,也有多选,但是我需要的是checkbox,没有现成的,百度发现微软有提供接口UITypeEditor ,继承这个基类就可以搞定了。废话不多说了,下面来具体代码说明。首先来一段官方资料:UITypeEditor 类 提供可用于设计值编辑器的基类,这些编辑器可提供用户界面(UI),用来表示和编辑所支持的数据原创 2014-03-14 21:40:30 · 5273 阅读 · 0 评论 -
给控件动态添加属性的做法、IExten…
最近在做项目的过程中,发现前面的同事在设计功能的时候引用了属性添加的这样类似tooltip功能的控件,之前没有研究过,度娘后发现这篇文章写的不错,转载。 用过tooltip的人都知道,在添加一个tooltip后,所有界面上的控件自动加上一个“在tooltip1上的tooltip”的属性,这是怎么实现的呢?这是以为tooltip继承了接口IExtenderProvider,Vs在设计控件的时候原创 2014-03-14 21:40:28 · 1591 阅读 · 0 评论 -
C#中Lock使用
好久没有写了,前段时间写WPF的学习笔记,由于目前换公司了,所以WPF的笔记要延后写了,今天碰到一个关于LOCK的使用问题特记录下来。今天在写一个单例模式的类。首先定义个接口给其它工程使用的方法: public interfaceICallService : IO4PubBase { ListGetFundInfo(TGetFundInfoIn paramIn原创 2014-03-14 21:40:26 · 1442 阅读 · 0 评论 -
C#抽象类和接口的区别
今天看到这篇文章的最后一个比喻比较有意思,所以转了。一、抽象类: 抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。 二原创 2014-03-14 21:40:23 · 498 阅读 · 0 评论 -
C#开源资源大汇总
一、AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架。Encase独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式。这种部署方面(aspects)的方法帮助缺少经验的开发人员提高开发效率。 NKalore是一款编程语言,它扩展了C#允许在.net平台使用AOP。NKalore的语法简单、直观,它的编原创 2014-03-14 21:40:15 · 855 阅读 · 0 评论 -
C#面试题
面试题内容来自网络转载1 .列举ASP.NET页面之间传递值的几种方式。答. 1).使用QueryString, 如....?id=1; response. Redirect()....2).使用Session变量3).使用Server.Transfer2. 一列数的规则如下:1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。答:publi原创 2014-03-14 21:40:08 · 623 阅读 · 0 评论 -
C#应用程序关闭WIN7系统DEP执行保…
最近在做项目,由于应用程序中调用了第三方的DLL,运行在WIN7上发现被DEP拦截了,程序跑不起来。网上一阵搜索发现是由于VS开发工具在编译C#项目的时候会在PE头文件里面将DEP开关打开,而C#工程又没有这个关闭的开关【C++工程是有这个开关的】,最后终于找到了一个方法,在项目生产后执行事件里添加关闭DEP命令行即可。项目属性---》生产事件---》后期生成事件命令行---》编辑后期生成事件原创 2014-03-14 21:39:59 · 3727 阅读 · 1 评论 -
C# 序列化和反序列化
序列化又称串行化,是.NET运行时环境用来支持用户定义类型的流化的机制。其目的是以某种存储形成使自定义对象持久化,或者将这种对象从一个地方传输到另一个地方。.NET框架提供了两种串行化的方式:1、是使用BinaryFormatter进行串行化;2、使用SoapFormatter进行串行化;3、使用XmlSerializer进行串行化。第一种方式提供了一个简单的二进制数据流以及某些附加的类型信息原创 2014-03-14 21:39:55 · 430 阅读 · 0 评论 -
使用缓存的9大误区 【下】
本篇文章在上篇的基础上继续讨论了使用缓存的几个误区,包括:缓存大量的数据集合,而读取其中一部分;缓存大量具有图结构的对象导致内存浪费;缓存应用程序的配置信息;使用很多不同的键指向相同的缓存项;没有及时的更新或者删除再缓存中已经过期或者失效的数据。缓存大量的数据集合,而读取其中一部分在很多时候,我们往往会缓存一个对象的集合,但是,我们在读取的时候,只是每次读取其中一部分。我们举个例子来说明这个原创 2014-03-14 21:39:53 · 389 阅读 · 0 评论 -
WinForm数据绑定--BindingContext
今天看到同事之前写的一段winform代码,忽然想起和WPF的属性依赖类似。记下来。 Binding对象:代表某对象属性值和某控件属性值之间的简单绑定。其主要负责将控件的属性和对象的属性进行关联。 BindingManagerBase:管理绑定到相同数据源和数据成员的所有 Binding 对象。 这个对象在前面的章节中没有涉及,但实际上不管是简单绑定还是复杂绑定中都使用到原创 2014-03-14 21:40:39 · 4104 阅读 · 0 评论 -
VisualStudio皮肤网站
今天发现一个网站 http://studiostyl.es/ 里面有很多VS的主题皮肤【就是字体颜色等配置文件】,很方便,设置也方便。 下面简单写一下安装方法:1.选中工具栏2.选择保存当前的设置,如果你觉得以后不需要退回当前的设置可以选择不保存,直接覆盖。3.我选择保存。4.导入在上面网站下载下来的配置文件,确定即可。原创 2014-03-14 21:40:44 · 1107 阅读 · 0 评论 -
关于缓冲区溢出与数据执行保护DEP…
之前有一篇简单介绍C#在开发过程中碰到WIN7系统设置的数据执行保护DEP的拦截,只是简单的介绍了解决的办法,前天忽然看到以下这篇文章介绍很详细,特转载。先看一个缓冲区溢出的C++实例程序,代码如下(VC6.0下编译通过):[cpp] viewplaincopy//by MoreWindows #include #include原创 2014-03-14 21:40:12 · 1178 阅读 · 0 评论 -
c#第三方控件地址
DevExpress 出品 Dxperience包括 ASP.NET 和 WinForm 的超强 超炫www.devexpress.comhttp://www.dotnetmagic.comhttp://www.divil.co.ukhttp://www.componentone.comhttp://www.infragistics.com/ http://ww原创 2014-03-14 21:39:46 · 530 阅读 · 0 评论 -
WPF是什么 ?
要赢得世界,必须在恰当的时间做出恰当的事。这一点,微软做到了。历经微软DOS,Win 31, Windows 95,Windows 98, Windows 2000, Windows XP,一路走来,一次比一次热闹,一个比一个精彩、炫丽。Windows Vista的宣传更是轰轰烈烈,喧嚣日上。初见WindowsVista,都会被它的酷炫界面所吸引,哇!原来Windows也可与Mac一样酷、一原创 2014-03-14 21:38:22 · 684 阅读 · 0 评论 -
C#多线程------生产者和消费者.续
下面定义生产者类 CellProd 和消费者类 CellCons,它们都只有一个方法ThreadRun(),以便在Main()函数中提供给线程的ThreadStart代理对象,作为线程的入口。public class CellProd{ Cellcell; // 被操作的Cell对象 int quantity = 1;// 生产者生产次数,初始化为1原创 2014-03-14 21:38:08 · 390 阅读 · 0 评论 -
C#中利用多线程控制打印的暂停和继…
感谢老大的指导----本文转载老大http://blog.csdn.net/Luckeryin/archive/2009/07/13/4345293.aspx C#中,通常涉及到打印,我们一般都会用到PrintDocument类,用该类来实现打印真是又方便又强大.程序员可以非常轻松的控制打印内容.然而PrintDocument类提供了打印"取消"功能,却没有为我们提供打印的"暂停"与"继续"原创 2014-03-14 21:38:03 · 2395 阅读 · 0 评论 -
随笔『使用ActiveReport for .net …
(一)--开始 ActiveReport是.net下的一个出色的报表开发程序,虽然和水晶报表相比,名气不那么大,甚至有很多人不知道它的存在,但是并不妨碍它在.net报表开发中的出色表现,本文将一步一步地介绍如何使用它和VS2005开发.net报表。 1. 安装:你可以从Data Dynamics的网站上下载最新的ActiveReport for .net 2,你可以原创 2014-03-14 21:37:56 · 674 阅读 · 0 评论 -
常用的WINFORM开发经验(C#)
一.设置回车时执行TAB功能1、请先设置窗体的keyPreView属性为True,确认控件的键盘事件向窗体注册;2、在窗体的KeyPress事件中编写如下代码: private void Form1_KeyPress(object sender,KeyPressEventArgs e) { if (e.KeyChar == (char)13) {原创 2014-03-14 21:37:40 · 730 阅读 · 0 评论 -
C#泛型学习
泛型类和泛型方法同时具备可重用性、类型安全和效率,这是非泛型类和非泛型方法无法具备的。泛型通常用在集合和在集合上运行的方法中。.NETFramework 2.0 版类库提供一个新的命名空间System.Collections.Generic,其中包含几个新的基于泛型的集合类。建议面向 2.0版的所有应用程序都使用新的泛型集合类,而不要使用旧的非泛型集合类,如 ArrayList。有关更多信息原创 2014-03-14 21:35:29 · 396 阅读 · 0 评论 -
VS2010编译程序报errorMSB3073
最近换了笔记本硬盘,重新安装了开发环境,在编译原来的工程的时候,发现无法正常编译完成,报errorMSB3073:已退出,代码为 9009。首先我说说我工程,工程带有第三方控件。我机器是WIN7系统,WIN7系统是DEP数据库执行保护,会拦截工程中的非托管代码,这个时候我们需要在工程生成后事件中加入命令来修改编译后APP的PE头文件的属性开关,这个开关在我另一篇关于如何关闭WIN7数据执行保护原创 2014-03-14 21:40:10 · 3601 阅读 · 0 评论 -
VisualStudio添加项目模板
在做项目的过程中还有一些特定的格式需要大量使用这个时候用模板就比较方便了。VS给我们提供了自定义模板,做法如下: VS项目模板及项模板位置,例如:ProgramFiles\Microsoft Visual Studio10.0\Common7\IDE\ 默认情况下,与产品一起安装的模板位于以下位置:/Common7/IDE/ItemTemplates/语言/区域设置//Co转载 2014-03-14 21:40:32 · 2787 阅读 · 0 评论 -
使用缓存的9大误区 【上】
如果说要对一个站点或者应用程序经常优化,可以说缓存的使用是最快也是效果最明显的方式。一般而言,我们会把一些常用的,或者需要花费大量的资源或时间而产生的数据缓存起来,使得后续的使用更加快速。如果真要细说缓存的好处,还真是不少,但是在实际的应用中,很多时候使用缓存的时候,总是那么的不尽人意。换句话说,假设本来采用缓存,可以使得性能提升为100(这里的数字只是一个计量符号而已,只是为了给大家一个“量原创 2014-03-14 21:39:50 · 415 阅读 · 0 评论 -
C# ActiveX控件
1.建立winform用户控件项目2.在AssemblyInfo.cs中using System.Security,并加入语句[assembly :AllowPartiallyTrustedCallers()],用处是执行安全声明,让控件使用赋予的权限3.在winform控件类,usingSystem.Runtime.InteropServices,并为类添加Guid.4.修改项目属性-原创 2014-03-14 21:39:44 · 447 阅读 · 0 评论 -
winfrom操作excel
最近项目中遇到的问题,网上找了很久这些问题的答案不是蛮多。所以现在整理出来。1.二进制图片的转换 /// /// 将图片转换为流 /// /// <paramname="url">图片的路径 ///二进制图片数据流 public byte[] PicToStream(string url)原创 2014-03-14 21:37:48 · 793 阅读 · 0 评论 -
C#操作Excel对象
最近一段时间正好在做winform导出Excel报表的问题,学习了一下C#操作Excel的一些方法(如:向Excel中插入图片;删除Excel指定sheet中的某行或某列,在Excel指定的单元格中画线等)一、添加引用 添加com组件(Microsoft Office 11.0 Object Library)命名空间为Microsoft.Office.Interop.Excel原创 2014-03-14 21:37:46 · 806 阅读 · 0 评论 -
winform绘图技术(二)
前面的示例代码创建了内存位图对象,它的大小等于窗体的客户区域(就是绘图表面)的大小,通过调用Graphics.FromImage将内存中位图的引用传递给Graphics对象,也就是说后面所有对该Graphics对象的操作实际上都是对内存中的位图进行操作的,该操作在C++中等同于将位图对象的指针复制给Graphics对象,两个对象使用的是同一块内存地址。现在Graphics对象表示的是屏幕后方的一块原创 2014-03-14 21:37:44 · 2147 阅读 · 0 评论 -
winform绘图技术(一)
简介 幸运的是当编写一个典型的Windows 窗体程序时,窗体和控件的绘制、效果等操作是不需要特别加以考虑的。这是为什么呢?因为通过使用.Net框架,开发人员可以拖动一系列的控件到窗体上,并书写一些简单的与事件相关联的代码然后在IDE中按F5,一个完完全全的窗体程序就诞生了!所有控件都将自己绘制自己,窗体或者控件的大小和缩放都调整自如。在这里经常会用到的,且需要引起一点注意的就是控件效果原创 2014-03-14 21:37:42 · 1935 阅读 · 0 评论 -
Invoke 和 BeginInvoke 的区别
在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate。 一、为什么Control类提供了Invoke和BeginInvoke机制?关于这个问题的最主要的原因已经是dotnet程序员众所周知的,我在此费点笔墨再次记录到自己的日志,以便日后提醒一下自己。1、windows程序消息机制Windows GUI程序是基于消息机制的,有个主线程维护着一个消息泵。这个消息原创 2014-03-14 21:37:33 · 389 阅读 · 0 评论 -
C#将数据导出到Excel汇总
一、asp.net中导出Execl的方法:在asp.net中导出Execl有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上;一种是将文件直接将文件输出流写给浏览器。在Response输出时,t分隔的数据,导出execl时,等价于分列,n等价于换行。1、将整个html全部输出execl此法将html中所有的内容,如按钮,表格,图片等全部输出到Execl原创 2014-03-14 21:37:24 · 595 阅读 · 0 评论 -
C# 递归算法!
首先碰到的是这样的一首题目:计算数组{1,1,2,3,5,8.......} 第30位值,不用递归,我写出了以下这样的代码:static void Main(string[] args) { int[] num=new int[30]; num[0]=1; num[1]=1; int first=n原创 2014-03-14 21:37:13 · 487 阅读 · 0 评论 -
C#中的反射原理及应用
反射的概述反射的定义:审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等,。System.reflection命名空间包含的几个类,允许你反射(解析)这些元数据表的代码和反射相关的命名空间(我们就是通过这几个命名空间访问反射信息):System.Reflecti原创 2014-03-14 21:35:34 · 577 阅读 · 0 评论 -
c#中的ArrayList属性祥解及其语法…
1、什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和IList接口 灵活的设置数组的大小 2、如何使用ArrayList 最简单的例子: ArrayList原创 2014-03-14 21:35:32 · 1409 阅读 · 0 评论 -
什么是泛型编程思想?及其简单的应…
什么是泛型编程思想?泛型 :赋予了类型 参数式 多态 的能力泛型的第一个好处是编译时的严格类型检查。这是集合框架最重要的特点。此外,泛型消除了绝大多数的类型转换。如果没有泛型,当你使用集合框架时,你不得不进行类型转换。关于泛型的理解可以总结下面的一句话,它是把数据类型作为一种参数传递进来。下边的这段代码是泛型的一个最简单的应用using System;using System.Colle原创 2014-03-14 21:35:27 · 547 阅读 · 0 评论 -
线程的暂停与重新启动
调用Thread.Sleep使当前线程阻塞一段时间,休眠,直到调用Thread.Interrupt,另一个线程中断或被Thread.Abrot终止。注意:一个线程不能对另一个线程Sleep.Thread.Suapend暂停一个线程,自身调用,该调用阻塞,直到该线程被另一个线程继续为止。当另一个线程调用它,将会对该线程暂停。Thread.Resume将使另一个线程跳出挂起状态并继续执行,而原创 2014-03-14 21:38:00 · 7591 阅读 · 0 评论 -
C#多线程------生产者和消费者
每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生。C#提供了一个关键字lock,它可以把一段代码定义为互斥段(criticalsection),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。在C#中,关键字lock定义如下:lock(ex原创 2014-03-14 21:38:05 · 1275 阅读 · 0 评论 -
Winform 系统热键的注册和说明
大多数的软件都支持全键盘操作,即快捷键的操作。我们知道有的控件是带有快捷键设置的属性的,但是有的控件是没有,特别是重绘的控件或者自定义控件就不会有现成的属性,那么这个时候我们就用注册热键(热键可以注册成快捷键,反之不一定)来指定每个控件的快捷键,废话少说,下面来具体的:1.首先我们知道系统中注册热键和注销热键的方法在user32.dll中,我们首先导入这个DLL,封装在HotKey类中,这个类原创 2014-03-14 21:39:42 · 845 阅读 · 0 评论 -
C# winfrom textbox 对于右键粘贴…
最近在做项目中遇到这样一个问题,用户希望在输入框中对右键粘贴和复制等功能进行有选择行的控制。之前我对于右键粘贴的控制就是监控系统粘贴板的内容,然后和正则表达式进行校验,如果不通过则清空textbox和粘贴板,但是这样不合理,下面说说我选择的做法:禁用textbox里右键菜单的做法: textBox.ShortcutsEnabled = false;我只是做了对粘贴的控制,对于剪切和复制原创 2014-03-14 21:39:39 · 2331 阅读 · 0 评论 -
win2003服务器IIS设置允许下载.exe…
最近新装的一台WIN2003的服务器,刚开始一直无法下载.exe的文件,原来在的一台WIN2003服务器没有进行什么设置就可以正常下载,于是在网上搜索了一下解决办法.在百度搜了老半天,多数解决办法都只讲到如下步骤:1.设置MIME,让IIS支持更多文件类型,如果MIME类型中已经有.exe,这一步可以跳过。打开IIS,选中服务器,点右键,属性里有MIME类型添加扩展名:.exe类型:ap原创 2014-03-14 21:39:20 · 1526 阅读 · 0 评论