C#
文章平均质量分 74
振哥在,世界充满爱!
计划+坚持!+思考
展开
-
C#中Delegate类的简单应用实例
Delegate类在开发中的实例应用该实例是通过建立登录界面中的Delegate的应用。一般在使用Delegate类时,都是通过四部分实现的:1、在类中定义一个Delegate函数的数据结构;2、定义Delegate的静态方法或引用类实例及该类的实例方法;3、Delegate数据变量指向它的实例方法;4、执行实例方法。如下://创建委托private deleg原创 2016-05-09 10:11:20 · 1646 阅读 · 3 评论 -
C#读取,修改,保存HTML文件(C#窗体Treeview控制HTML中的VLC的视频播放列表)
由于项目的需要,要实现在C#窗体的Treeview操作下能够控制窗体中webbrowser读取的HTML静态网页中的VLC视频播放器的播放列表。简单理解就是Treeview控制静态网页中的VLC的视频播放列表。通俗理解就是,后天能够控制前台页面的VLC的视频播放列表。 以下是案例,仅供参考: 第一步:建立如上图所示的Treeview:该图是一个Treeview的展开原创 2016-07-26 17:44:39 · 1129 阅读 · 0 评论 -
C#设计模式—组合模式
一、组合模式的定义 组合多个对象形成树形结构以表示具有部分——整体关系的层次结构。二、说明 组合模式关注那些包含叶子构件和容器构件的结构以及它们的组织形式,在叶子结构中不包含成员对象,而容器构件中包含成员对象,这些对象通过递归组合可构成一个树形结构。 由于容器对象和叶子对象在功能上存在区别,因此在使用这些对象的代码中必须有区别的对待容器对象和叶子对象。三、组合原创 2016-06-18 12:27:31 · 404 阅读 · 0 评论 -
C#读取,修改并保存html文件——实例
在C#中对网页中的的信息进行修改并保存。 另外自己写了一个简单的操作例子: Stream myStream = new FileStream("RealTimeViedo1.html", FileMode.Open); Encoding encode = System.Text.Encoding.GetEncoding("GB2原创 2016-07-25 23:55:01 · 8962 阅读 · 0 评论 -
C#设计模式—桥接模式
一、定义: 桥接模式将抽象部分与它的实现部分解耦,使得两者都能独立变化。 说明:桥接模式用一种巧妙的方式处理多层继承存在的问题,用抽象关联取代了传统的多层继承,将类之间的静态继承关系转换为动态的对象组合关系,提高系统的灵活性,易于扩展,有效控制系统中类的个数。 桥接模式又称为柄体模式或接口模式。二、桥接模式的结构 桥接模式包含四个部分:1)抽象类(A原创 2016-06-15 21:14:24 · 530 阅读 · 0 评论 -
C#设计模式—适配器模式
从本节开始描述结构型设计模式。一、结构型模式(StructuralPattern):(1)关注将现有类和对象组织在一起形成更强大的结构;(2)结构型模式可分为两类:类结构型模式和对象结构型模式。 (3)类结构型模式:关心的是类的组合,形成更大的系统,一般只存在继承关系和实现关系。(4)对象结构型模式:关心的是类和对象的组合,通过关联关系在一个类中定义另一个类的实例对象,然后通过原创 2016-06-14 21:27:58 · 348 阅读 · 0 评论 -
C#项目中发生PInvokeStackImbalance异常,堆栈不对称异常
在项目中嵌入视频播放软件时,系统中提示堆栈不对称异常。当修改DLL为动态导入时,即将[DllImport(“libvlc”)]修改为[DllImport(“libvlc”, CharSet = ChartSet.Ansi,CallingConvention = CallingConvention.cdecl)]上述异常就会消失,但是接着就会报出异常:未处理EntryPointNotFo原创 2016-06-13 09:57:10 · 4526 阅读 · 0 评论 -
C#中多路广播与委托合并
在介绍多路广播之前先介绍一下单路广播。单路广播是指在每次委托调用的都是一个方法,即每次调用只引用一个方法的广播。 在C#中允许使用一个委托对象来同时调用多个方法,当向委托添加更多的指向其他方法的引用时,这些引用被存储在委托的调用列表中,这种委托就是多路广播委托。所有的委托都可以归结为多路广播委托。 当然,向一个委托的调用列表添加多个方法引用后,可以通过该委托一次性调用所有的方法原创 2016-05-23 20:35:59 · 1727 阅读 · 0 评论 -
HTML按钮控制C#程序截图并查看
在上一篇博客中http://blog.csdn.net/qq_30507287/article/details/51746893,描述了如何利用窗体界面的按钮来控制截图的功能的实现。本次博客描述的是如何利用HTML中的按钮来控制C#后台程序的运行来实现截图。 (1)首先在HTML中创建两个type=“button”的按钮,其多创建如下:原创 2016-06-27 09:26:56 · 441 阅读 · 0 评论 -
C#设计模式—装饰模式
一、装饰模式定义 动态地给一个对象增加一些额外的职责,就扩展功能而言,装饰模式提供了一种比使用子类更加灵活的替代方案。 说明:装饰模式是一种用于替代继承的技术,它通过一种无须定义子类的方式给对象动态增加职责,使用对象之间的关联关系取代类之间的继承关系。 在装饰类中既可以调用待装饰的原有类的方法,还可以增加新的方法,以扩展原有类的功能。二、装饰模式的结构1)抽象原创 2016-06-18 20:09:49 · 479 阅读 · 0 评论 -
C#窗体截图保存的实现
在项目要求实现对窗体的部分控件进行截图,并保存。这里我整理了一下有关截图的过程。包括截图的范围(两种情况,第一种是对整个窗体截图;第二种是对窗体中的控件进行局部截图)、截图后保存的方式(两种情况,第一种是弹出对话框进行选择路径保存;第二种是默认路径直接保存)。 说明1:代码中为了方便,我将截图的两种方法的代码独立分开来写的。 说明2:文中对窗体中的控件截图(部分截图)指的是We原创 2016-06-23 21:48:09 · 8445 阅读 · 3 评论 -
.NET中ThreadStart和ParameterizedThreadStart区别
ThreadStart: ThreadStart这个委托定义为void ThreadStart(),也就是说,所执行的方法不能有参数。ThreadStart threadStart=new ThreadStart(Calculate);Thread thread=new Thread(threadStart);thread.Start();public void转载 2017-01-09 15:30:34 · 2333 阅读 · 0 评论 -
C#将List中的数据导入Excel文件中
上一篇描述的是C#读取XML中的数据保存到List。今天描述一下如何将List中的数据导入到Excel中。我的实现是根据下面的博客进行改进的,这里给出原来博客的内容。 由于是Excel文件,所以要用到Office相关的dll,故请添加相应dll的引用,然后在程序中添加如下命名空间:using Microsoft.Office.Interop.Excel; 自定义转载 2016-12-24 08:46:52 · 6664 阅读 · 0 评论 -
C#读取XML文件的内容
在项目中需要用C#程序读取XML文件内的内容,这里给大家做一个简单的例子用来演示C#的读取过程。1、给出的XML文件内容如下所示: 语文 Chinese 90 数学 Math 95 英语 English 93 2原创 2016-12-22 21:19:32 · 8920 阅读 · 0 评论 -
C#-重新封装DataGridView控件类
由于项目的需要,每个模块都要添加一个DataGridView控件来显示数据,并且对控件的要求基本一致,于是就重新封装了一个新的NewDataGridView控件类。 一、需求和步骤: 先创建一个对象实例:NewDataGridViewndgv =new NewDataGridView(this,form11, form22) 1、通过原创 2016-10-18 21:30:56 · 4586 阅读 · 0 评论 -
C#GridViewMergeCell合并
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Data;using System.Web.UI.WebControls;idViewMergeCell{ public GridViewMergeCell() {转载 2016-10-18 09:26:08 · 3471 阅读 · 2 评论 -
C#上传(修改表单数据),下载文件到服务器
由于项目的需要,需要将文件上传到服务器,并且冲服务器下载文件到客户端,采用的是HTTP协议,有人认为使用FTP协议更简单一些,并且效率更高一些。这里简单描述一些对比二者的一些特点: (1)FTP的服务器部署相对来说更麻烦一些,设置权限出问题的话,会产生一系列的安全问题; (2)如果双方都还有防火墙,又不想开发FTP相关的一些端口时,HTTP就简单一些,就像WEB原创 2016-08-23 21:01:02 · 965 阅读 · 0 评论 -
C#WinForm上传文件的方案
1、501 为实现错误解决方法:先把IISWEB服务扩展中的WebDev打开。然后,IIS站点添加MIME txt类型 常见的MIME类型如下:超文本标记语言文本 .html,.html text/html 普通文本 .txt text/plain RTF文本 .rtf application/rtf GIF图形 .gif image/gif JPEG图形 .ipeg转载 2016-08-19 19:44:51 · 1206 阅读 · 0 评论 -
RabbitMQ基础学习笔记(C#代码示例)
RabbitMQ基础学习笔记(C#代码示例)一、定义: MQ是MessageQueue,消息队列的简称(是流行的开源消息队列系统,利用erlang语言开发)。MQ是一种应用程序对应用程序的通信方法。应用程序通过读写入队和出队的消息来通信,无需专用连接来链接它们。 消息传递是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,一般应用于远程过程调用的技术。原创 2016-08-10 21:54:05 · 8419 阅读 · 1 评论 -
C#中Any CPU和X86和X64平台的差异对比
最近在C#项目中嵌入一个视频软件Ffplayer,出现报错现象,提示平台开发视频.dll文件的兼容性和加载格式不正确的问题。最终查看是由于项目平台选择的是Any CPU和X86的引起的。目标平台有什么作用,各选项有什么差别。 一、在VisualStudio中,在编译设置中有如下选项: x86: 将程序集编译为由兼容 x86 的 32 位公共语言运行库运行。转载 2016-06-11 09:17:54 · 18906 阅读 · 2 评论 -
C#设计模式—建造者模式
一、建造者模式定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 说明:建造模式是一种对象创建型模式,它将客户端与包含多个部件的复杂对象的创建过程分离,客户端无须知道复杂对象的内部组成部分与装配方式,只需要知道所需建造者的类型即可。二、建造者模式结构 1)抽象建造者:为创建一个产品对象的各个部件指定抽象接口,该接口中一般包含两个方法:原创 2016-06-10 21:39:39 · 1428 阅读 · 2 评论 -
C#中TextBox水印提示的实现过程
C#项目开发中在设计登录界面时,经常会遇到TextBox的水印提示要求。这里简单描述一下项目在实现水印提示的过程设置。如下图图1所示。图1 窗体布局一、窗体布局(如图1所示)1、 在窗体中放置两个label标签,其中text属性分别为“用户名:”和“密码:”。2、 放置两个TextBox控件,其(Name)属性命名为“UserNameTxt”和“PwdTxt”。原创 2016-05-31 09:50:49 · 9115 阅读 · 4 评论 -
C#委托中的协变与逆变
1、签名:返回值类型和参数。 2、委托调用要求委托的签名必须与调用的方法的签名匹配,如果签名不匹配,将无法通过编译器的类型检查。 3、协变:允许所调用方法的返回类型可以是委托的返回类型的派生类型,当委托方法的返回类型具有的派生程度比委托签名更大时,就称为协变委托方法。协变委托方法的优点是:使得创建可被类和派生类同时使用的委托方法成为可能。 4、逆变:允许将带有派生参数原创 2016-05-24 14:50:48 · 2015 阅读 · 1 评论 -
C#中常见的窗体属性
C#中窗体几种常见的属性值的功能布局:AutoScaleMode:当屏幕分辨率或字体发生改变时,窗体和控件是如何发生变化的AutoScroll:滚动条的设置Size:启动窗体时的大小StartPosition:窗体启动时的位置设置窗体样式:ControlBox:窗体是否有最大化、最小化、关闭按钮等HelpButton:窗体是否有帮助按钮Icon:窗体左上角图标的原创 2016-05-12 10:48:12 · 5973 阅读 · 2 评论 -
C#中 GenerateResource”任务意外失败。 System.NullReferenceException: 未将对象引用设置到对象的实例。
在用VS开发C#项目时,将项目从一台电脑拷贝到另一台电脑时,当生成解决方案时,会出现下面的错误。 —— 已启动生成: 项目: XXX.Login, 配置: Debug Any CPU —— error MSB4018:“GenerateResource”任务意外失败。 error MSB4018: System.NullReferenceException: 未将对象引用设置到对象的实例。原创 2016-05-11 09:02:03 · 5588 阅读 · 0 评论 -
了解了点C#的基础知识
今天刚刚了解了一点C#的基础知识,总结了一下,如有错误希望大家指点。1).Net是有两部分构成的:.Net平台和.Net FrameWork框架。其中.Net FrameWork框架是.Net平台中不可缺少的一部分,它提供了一个稳定的运行环境来保证.Net平台开发的各种应用能够正常的运转,该框架也包含两部分,一个是CLR(公共语言运行时),另一个是.Net类库。2)C#的应用:开发Win原创 2016-04-25 22:07:49 · 353 阅读 · 0 评论 -
C#几个快捷键
平时还是多用用快捷键比较好Ctrl+K+D (快速对其,K弹起的瞬间在按下D)Ctrl+J(快速弹出智能提示)Shift+Home/Shift+EndCtrl+K+C(注释选中的代码)当然还有快捷按钮Ctrl+K+U(取消注释代码)当然还有快捷按钮F1 转到帮助文档#region #endregion原创 2016-04-26 21:49:59 · 465 阅读 · 2 评论 -
C#国际化解决方案策略
在C#项目软件开发中,经常会涉及到窗体界面语言的选择和设置,便于软件能够国际化。今天自己动手实践了一下。1、新建Windows窗体应用程序,在窗体中放置两个label1和label2,分别命名为中文,英文;2、在窗体中放置两个RadioButton按钮,分别命名为radioButton1和radioButton2;3、当选中“中文”(radioButton1)时,将其属性Checked原创 2016-04-27 21:04:06 · 3159 阅读 · 0 评论 -
C# 和Java区别
Java 的设计者是因为讨厌C++的复杂,于是Java 非常简洁,GC 也让内存管理非常方便,C# 是看中了Java 的GC,和虚拟机技术,希望把微软的几大语言集成到.NET 上来。 因此C#从语言上来讲并不简单甚至可以算的上复杂。 两种语言的设计思路也不一样,Java 是编译解释语言,C#是编译然后编译运行语言。Java 没有委托,C# 有委托。Java 倾向于用Interface转载 2016-05-03 09:03:49 · 454 阅读 · 1 评论 -
C#开发中IrisSkin2.dll如图添加到工具箱
C#开发中IrisSkin2.dll如图添加到工具箱 IrisSkin2.dll属于第三方的控件,用于解决“美工问题”。该控件属于免费的皮肤控件,可以方便的实现winForm窗体更换皮肤。 第一步,下载IrisSkin2.dll文件,下载链接:http://download.csdn.net/detail/qq_30507287/9525225 将该文件最好放置在\bin原创 2016-05-20 08:15:56 · 2447 阅读 · 0 评论 -
C#设计模式—访问者模式
1、访问者模式定义 表示一个作用于其对象结构中的各个元素的操作。 访问者模式是一种对象行为型模式,它为操作存储不同的类型元素的对象结构提供了一种解决方案,用户可以对不同类型的元素施加不同的操作。 访问者模式常常和组合模式一起使用。2、访问者模式结构 该模式包含五种角色: 1)抽象访问者类(Visitor):为对象结构中的每一个元素类声明一个访问原创 2016-06-26 20:36:54 · 603 阅读 · 0 评论 -
C#设计模式—策略模式
1、策略模式定义 策略模式定义一系列的算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法可以独立于使用它的客户变化。 特点:策略模式用于算法的自由切换和扩展。实现了算法定义和算法使用的分离,它通过继承和多态的机制实现对算法的使用和管理。2、策略模式的结构 策略模式包含三个角色: 1)环境类(Context):是使用算法的角色,它在解决某个问原创 2016-06-26 19:44:50 · 440 阅读 · 0 评论 -
C#设计模式—观察者模式
1、观察者模式定义 定义对象之间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象都得到通知并被自动更新。属于对象行为模式。2、观察者模式 1)目标类(Subject):指的是被观察的对象,定义一个观察者的集合。一个观察目标可以被多个观察者观察。目标提供一系列方法来增加和删除观察者对象。目标类可以是接口类,也可以是抽象了或具体类。 2)具体目标类原创 2016-06-26 19:12:43 · 444 阅读 · 0 评论 -
C#设计模式—抽象工厂模式
一、相关知识 1)产品等级结构:也称为继承结构。 2)产品族:由同一个工厂生产的,位于不同产品等级结构中的一组产品。二、抽象工厂模式定义 提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。 区别于工厂方法模式:抽象工厂模式中的具体工厂不只是创建一种产品,而是负责创建一族产品。三、抽象工厂模式的结构 1)抽象工厂:一组用于创原创 2016-06-10 00:18:08 · 319 阅读 · 0 评论 -
C#项目中WebBrowser控件的应用
文档中整理了WebBrowser的属性设置和方法的实现。C#中WebBrowser控件的属性和方法:http://download.csdn.net/detail/qq_30507287/9544960原创 2016-06-08 22:06:35 · 378 阅读 · 0 评论 -
C#设计模式—解释器模式
1、解释器模式定义给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。说明:解释器模式设计到文法规则和抽象语法树。2、解释器模式的结构解释器模式包含四个角色:1)抽象表达式(AbstractExpress):声明抽象的解释操作,它是所有终结符表达式和非终结符表达式的公共父类。2)终结符表达式(Termina原创 2016-06-24 22:18:12 · 1302 阅读 · 0 评论 -
C#设计模式—代理模式
1、代理模式的定义 给某一个对象提供一个代理或占位符,并由代理对象来控制对源对象的访问。 说明:当用户无法直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,所访问的真实对象需要实现相同的接口。根据代理类使用的目的不同,可以将代理区分为:保护代理,远程代理,虚拟代理,缓冲代理等。2、代理模式的结构 代理模式的实现包含原创 2016-06-24 22:16:28 · 458 阅读 · 0 评论 -
C#中Dock属性的作用
当在C#项目开发中,在窗体界面的设置经常用到Dock属性值。这里一panel面板的Dock属性值为例描述其作用。当容器中的控件的Dock属性设置为Fill时,可能会覆盖其他Dock属性为Top,Bottom,Right,Left的控件。为了避免出现覆盖现象,可以将被覆盖的控件置于底层就可以(在panel面板上“右键”--“置于底层”),如下图所示。应用Dock时,越是底层的控件,其优先级越高。原创 2016-05-20 20:32:03 · 13983 阅读 · 0 评论 -
Microsoft Visual Studio 2015已停止工作
win10系统下每次启动VS2015,都会出现下面的异常信息:使了各种操作都不好使,比如重装VS,卸载插件等。最后的一个方法不知道是巧合,还是怎么个情况就好使,操作步骤如下:1、先找到开始下的VS2015,(开始——所有程序——Microsoft Visual Studio 2015)选择VS2015开发人员命令提示(本质上是以管理员的身份运行),如下图:2、如下所示,原创 2017-03-18 16:49:01 · 16388 阅读 · 5 评论