C#
马立弘
一步一步往前走......
展开
-
能調整大小并可触發點擊事件的多行表頭
能調整大小并可触發點擊事件的多行表頭原理:利用Spliter結合一棵樹來做,主要是靈活設置Dock屬性 public partial class HeadItem : Panel { private string text; private Button btn ; public HeadItem() {原创 2008-03-13 09:03:00 · 483 阅读 · 0 评论 -
C#winform中UI線程与工作線程的交互
C#winform中UI線程与工作線程的交互1.使用多線程void CalcPi(int digits){ //...這里可寫任意代碼,但如果与UI界面交互將出錯.}void calcButton_Click(object sender,EventArgs e){ //...這里還是在UI線程里,可以寫任意代碼 //啟動一個新線程,用于處理費時的任務 Thread piThread=n原创 2008-03-21 15:36:00 · 1855 阅读 · 0 评论 -
C#中DataGridView多層表頭的制作(2)
C#中DataGridView多層表頭的制作(2)1.引言:以前也做過一下多表頭,可是還不能使用.http://blog.csdn.net/manimanihome/archive/2008/01/22/2058514.aspx2.原理:利用數組保存表頭信息,數組的格式有一定的限制,然后用CellPainting事件來重繪表頭.3.實現:本文在使用時,最好將ColumnHeader原创 2008-03-31 16:56:00 · 5123 阅读 · 4 评论 -
C#中DataGridView多層表頭的制作(3)
DataGridView多層表頭的制作(3)引言:受网上文章的啟發,終于用樹做出了多層表頭.將代碼做了一些修改,比較滿意,現在就只有一點不滿意,那就是ColumnHeadersHeightSizeMode仍要設為DisableResizing.先看效果.原理:利用TreeView的Nodes屬性保存表頭信息,也還是重載OnCellPainting,支持設計時的可視.支持表頭顏色自定義.原创 2008-04-01 14:59:00 · 3965 阅读 · 1 评论 -
DataGridView樣式--初級
DataGridView樣式--初級 vs2005為我們提供的樣式有以下6個,其中前3個只要綁定到相應字段類型就會自動產生,後3個則必須要手動設置綁定的數据 .除此之外,我們還可以自定義單元格樣式,及列樣式.1.vs2005自帶提供的列樣式說明--1.DataGridViewTextBoxColumn與文字基礎的值搭配使用。當繫結至數字或字串時會自動產生。在編輯模式中,會顯示一個T原创 2008-01-12 15:28:00 · 1565 阅读 · 0 评论 -
DataGridView自定義列樣式--DataGridViewDateTimeColumn
1.編寫DataGridViewDateTimeEditingControl類public class DataGridViewDateTimeEditingControl : DateTimePicker, IDataGridViewEditingControl { protected int rowIndex; protected DataGridVi原创 2008-01-15 11:16:00 · 2174 阅读 · 1 评论 -
DataGridView自定義列樣式--DataGridViewMaskedTextBoxColumn
1.編寫DataGridViewMaskedTextBoxEditingControl類public class DataGridViewMaskedTextBoxEditingControl : MaskedTextBox, IDataGridViewEditingControl { protected int rowIndex; protected D原创 2008-01-15 11:31:00 · 3160 阅读 · 1 评论 -
DataGridView樣式--進階
要定製自已的DataGridView列樣式,事實上我們是要定製的是單元格的樣式,所謂列樣式,只是將同一列的所有單元格設定成相同格式而已,那麼如何做呢,有兩種方式:(1)一種簡單的方式就是重寫DataGridViewCell的paint事件及其它觸發事件,從而得到想要的各種單元格效果,然後再簡單的重寫一個相應的DataGridViewColumn類,就可以了,但是這個方法需要自已去畫控件,對一般人來原创 2008-01-16 11:36:00 · 2265 阅读 · 0 评论 -
BackgroundWorker的使用
BackgroundWorker的使用如果讓我自已做一個顯示進度的程序,該怎么做?首先,定義一個委托,并調用BeginInvoke异步執行它,在執行結束后一定要調用EndInvoke.第二,在工作線程中更新界面進度時,要用Control.BeginInvoke.void calcButton_Click(object sender,EventArgs e){ //啟用工作線程,并傳參到工作原创 2008-04-12 15:57:00 · 817 阅读 · 0 评论 -
C#組件編程(2)
C#組件編程(2)較复雜的屬性為了編輯方便,就要用到屬性編輯器.由于在屬性視窗中只能識別字符串類型,如果是非字符串類型的屬性還需要用到類型轉換器.下面就分別講它們的使用方法:1.屬性編輯器Property Editor在vs环境中Property Editor有两种,一种是vs自带的,一种是Component编写者根据自己需求而重新编写的。示例: using System; usin原创 2008-03-19 16:05:00 · 804 阅读 · 0 评论 -
(轉)获取exe文件中的图标
本文轉自:http://www.cnblogs.com/tuyile006/archive/2006/12/25/602818.html要用到命名空间:using System.IO; public Icon[] myicon=new Icon[1000]; public int currentIndex=0; [System.Runtime.Inte转载 2008-03-18 10:15:00 · 1002 阅读 · 0 评论 -
(轉).Net线程问题解答
本文轉自:http://blog.csdn.net/yizhu2000/archive/2008/01/03/2022264.aspx.Net线程问题解答1.基础篇 怎样创建一个线程 受托管的线程与 Windows线程 前台线程与后台线程 名为BeginXXX和EndXXX的方法是做什么用的 异步和多线程有什么关联 2转载 2008-03-20 09:52:00 · 629 阅读 · 0 评论 -
C#中的文件的IO原理及操作
1.原理:System.IO命名空间中的类为托管应用程序提供文件以及其他形式的输入输出。托管i/o的基本构件是流,而流是字节导向的数据的抽象表示。流通过System.IO.Stream类表示. System.IO.FileStream允许将文件作为流访问; System.IO.MemoryStream允许将内存块作为流进行访问;托管和非托管的应用程序最常使用的IO形式是文件IO。托管应用程原创 2007-12-19 08:44:00 · 2793 阅读 · 0 评论 -
C#中的編碼轉化
C#中的編碼轉化 在轉化之前,必須要先知道當前變量的編碼.對於.NET下的string永远是Unicode的. 對於從文本文件中讀取的byte[]或string的編碼,也可以通過判斷文件的編碼來確定.詳細判斷方法見另一篇文章.下面介紹在已知當前孌量的情況下的轉化:Encoding utf8 = Encoding.UTF8;Encoding gb2312 = Encoding.Get原创 2007-12-24 12:01:00 · 835 阅读 · 0 评论 -
(轉)用C#编写获取远程IP,MAC的方法
本文轉自:http://www.cnblogs.com/tuyile006/archive/2006/12/21/598955.html 用C#编写获取远程IP,MAC的方法如果要想获得远程的地址,需要用sendarp这个函数来实现。具体的代码如下:[DllImport("Iphlpapi.dll")]private static unsafe extern int SendARP(Int转载 2008-03-18 10:19:00 · 732 阅读 · 0 评论 -
(轉)用C#语句打开控制面板里的某一属性窗口
本文轉自:http://hi.baidu.com/qusebar/blog/item/673fa144ea81d948510ffeee.html用C#语句打开控制面板里的某一属性窗口需要打开控制面板里的“日期和时间 属性”窗口,开始以为对应某一exe文件,后来才记起对应的是某一cpl 形如System.Diagnostics.Process.Start("RunDLL32.exe","sh转载 2008-03-19 14:35:00 · 1161 阅读 · 0 评论 -
.Net多线程总结
看以下文章吧:.Net多线程总结(一)http://blog.csdn.net/yizhu2000/archive/2007/10/12/1822286.aspx .Net多线程总结(二)-BackgroundWorker http://blog.csdn.net/yizhu2000/archive/2007/10/19/1832301.aspx原创 2008-03-20 10:08:00 · 459 阅读 · 0 评论 -
C#中引发和使用事件
C#中引发和使用事件下面的示例程序阐释如何在一个类中引发一个事件,然后在另一个类中处理该事件。AlarmClock类定义公共事件 Alarm,并提供引发该事件的方法。AlarmEventArgs类派生自 EventArgs,并定义 Alarm事件特定的数据。WakeMeUp类定义处理 Alarm事件的 AlarmRang方法。AlarmDriver类一起使用类,将使用原创 2008-03-19 11:07:00 · 1248 阅读 · 0 评论 -
C#組件編程(1)
C#組件編程(1)1.Component与Control之间的区别 (1)Component在Run Time时不能呈现UI,而Control可以在Run Time时呈现UI(但是vs 2005里的asp.net中的SqlDataSource是Control,但是它不能呈现UI)。 (2)Component是贴在容器Container上的,而Control则是贴在Windows Form或者W原创 2008-03-19 15:13:00 · 1320 阅读 · 0 评论 -
DataGridView绑定製作主從表
DataGridView绑定製作主從表1.确保绑定到同一数据源的多个控件保持同步 bindingSource1.BindingComplete += new BindingCompleteEventHandler(bindingSource1_BindingComplete);private void bindingSource1_BindingComplete(o原创 2008-07-18 17:36:00 · 1776 阅读 · 1 评论 -
C# 3.0新语言特性
C# 3.0新语言特性和改进包括: * 自动属性(Auto-Implemented Properties) * 隐含类型局部变量(Local Variable Type Inference) * 匿名类型(Anonymous Types) * 对象与集合初始化器(Object and Collection Initializers) * 扩展方法(Extension原创 2008-08-26 17:35:00 · 527 阅读 · 0 评论 -
C#合并文件夹中所有的txt文本文件
方法一:缺点:不支持中文,如果txt不是utf8编码,包含中文时会乱码 static void Main(string[] args) { string[] txtFiles = Directory.GetFiles(System.Environment.CurrentDirectory, "*.txt");原创 2016-10-30 11:00:20 · 3005 阅读 · 0 评论 -
python与C#的互相调用
python与C#的互相调用一、C#调用python新建一个项目,添加引用:IronPython.dll,Microsoft.Scripting.dll(在IronPython的安装目录中)。创建一个文本文件命名为hello.py,把该文件添加的当前的项目中,并设置为总是输出。#hello.pydef welcome(name): return "hello" + name调用hello.原创 2016-11-15 22:26:31 · 17303 阅读 · 0 评论 -
多线程采集的核心代码
多线程采集的核心代码 /// <summary> /// 采集进程记录 /// </summary> private ArrayList alMsgList = new ArrayList(); /// <summary> /// 线程 /// </summary> priv原创 2016-12-01 23:55:54 · 671 阅读 · 0 评论 -
asp.net使用Hangfire开发后台定时任务demo
一、新建webapi项目 WebApplicationWebApiHangfireSample在根目录添加Startup.cs文件using Hangfire;using Hangfire.MemoryStorage;using Microsoft.Owin;using Owin;[assembly: OwinStartup(typeof(WebApplicationWebApiHangfi原创 2016-12-02 12:05:30 · 9398 阅读 · 1 评论 -
PetaPoco的T4模板优化改进
主要修改Database.tt这个文件优化点:1.修改默认参数2.修改实体类名成为首字母大写的驼峰式写法,自动去掉下划线3.修改字段为首字母大写的驼峰式写法,自动去掉下划线原创 2016-11-01 15:09:22 · 1934 阅读 · 0 评论 -
dotnet下的采集
一、工具NCrawlerhttp://ncrawler.codeplex.com/Html Agility Packhttp://htmlagilitypack.codeplex.com/ScrapySharphttps://bitbucket.org/rflechner/scrapysharpQuartz.NEThttp://www.quartz-scheduler.net/二、先看几个原创 2016-11-24 23:43:47 · 456 阅读 · 0 评论 -
windows服务及asp.net中定时任务管理
windows定时计划任务管理系统quartz.net的使用asp.net使用Hangfire开发后台定时任务demo使用C#制作Windows服务和安装程序quartz.net的真实使用Quartz.net开源作业调度框架使用Quartz.net持久化与集群部署开发Cron表达式使用Quartz.Net 使用CrystalQuartz: http://www.cnblogs.com/mushro原创 2016-12-14 21:14:44 · 1148 阅读 · 0 评论 -
自动添加IP限制
/// &lt;summary&gt;/// 给IIS添加禁止IP限制/// 仅针对iis 7及以上版本/// 首先需要引入Microsoft.Web.Administration.dll/// 该文件位置在windows2008的\Windows\System32\inetsrv目录下/// 注意:生成的EXE文件必须以管理员身份运行/// &lt;/summary&gt;/// ...原创 2018-12-28 10:08:09 · 457 阅读 · 0 评论 -
使用C#操作IIS7的辅助类
using Microsoft.Web.Administration;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace BaseUtil{ public clas原创 2016-10-07 20:14:21 · 1100 阅读 · 0 评论 -
使用T4模板动态生成邮件内容并储存到任意位置
使用T4模板动态生成邮件内容并储存到任意位置一.基础概念介绍T4模板是扩展名为 .tt 的文本文件。 他分为设计时模板 和运行时模板。主要区别在于在vs中右键点击文件,打开“属性”,在“自定义工具”一栏中的值分别如下:设计时模板: TextTemplatingFileGenerator运行时模板:TextTemplatingFilePreprocessor原创 2016-10-29 12:36:04 · 1626 阅读 · 0 评论 -
windows定时计划任务管理系统quartz.net的使用
windows定时计划任务管理系统quartz.net的使用一、开发新建一个项目,比如Quartz.Server项目,引用以下动态库: Quartz.dll Common.Logging.dll Common.Logging.Core.dll Common.Logging.Log4Net1213.dll log4net.dll Topshelf.dll原创 2016-10-18 22:48:47 · 1240 阅读 · 0 评论 -
ExcelHelper
1.ExcelHelper源码 using System;using System.IO;using System.Text;using System.Data;using System.Reflection;using System.Diagnostics;using System.Collections;//using cfg = System.Configuration;原创 2008-10-18 20:30:00 · 999 阅读 · 0 评论 -
获得Windows中系统特殊文件夹的位置
获得Windows中系统特殊文件夹的位置 系统特殊文件夹是包含公共信息的文件夹,如“Program Files”、“Programs”、“System”或“Startup”。特殊文件夹在默认情况下由系统设置,或者由用户在安装 Windows 的某个版本时显式进行设置。GetFolderPath 方法使用这些枚举常数来指定要检索的特殊文件夹路径。具体使用方法如下: System.En原创 2008-10-30 14:34:00 · 776 阅读 · 0 评论 -
常用的知识结构图
参考:http://geek.csdn.net/news/detail/110921转载 2016-11-01 11:14:51 · 496 阅读 · 0 评论 -
winform中C#调用数据库连接选择对话框
1.首先需要添加引用“%Visual Studio安装目录%/Common7/IDE/Microsoft.Data.ConnectionUI.Dialog.dll”命名空间为:using Microsoft.Data.ConnectionUI;2.调用 private void btnCreateConnection(object sender, EventArgs e)原创 2016-11-03 15:10:24 · 1048 阅读 · 1 评论 -
web和winform中读取config配置文件的方法
读取配置文件,web中的比较简单,在winform中的读取要注意了,实际运行时默认使用的exe.config中的配置//web中读取web.config,需要引用System.ConfigurationSystem.Configuration.ConnectionStringSettings connString =System.Web.Configuration.WebConfigura原创 2016-11-05 15:36:18 · 1505 阅读 · 0 评论 -
C#设计模式(23种设计模式)
C#设计模式(23种设计模式)创建型: 1. 单件模式(Singleton Pattern) 2. 抽象工厂(Abstract Factory) 3. 建造者模式(Builder) 4. 工厂方法模式(Factory Method) 5. 原型模式(Prototype)转载 2016-10-26 23:18:04 · 293 阅读 · 0 评论 -
在内存中判断海量数据的唯一性
在内存中判断海量数据的唯一性通过布隆过滤算法来实现了假定我们存储一亿个电子邮件地址,我们先建立一个十六亿二进制(比特),即两亿字节的向量,然后将这十六亿个二进制位全部设置为零。对于每一个电子邮件地址 X,我们用八个不同的随机数产生器(F1,F2, ...,F8) 产生八个信息指纹(f1, f2, ..., f8)。再用一个随机数产生器 G 把这八个信息指纹映射到 1 到十六亿中的八个自然数 g1,原创 2016-11-07 16:34:45 · 774 阅读 · 0 评论 -
利用StateServer实现Session共享
1、更改web.config文件system.web中修改节点&amp;amp;amp;lt;sessionState mode=&amp;amp;quot;StateServer&amp;amp;quot; stateConnectionString=&amp;amp;quot;tcpip=localhost:42424&amp;amp;quot; cookieless=&amp;amp;quot;fals原创 2018-12-28 14:35:29 · 1816 阅读 · 0 评论