WinForm
goto_jhq
http://blog.fashion-century.com/
展开
-
关于两个窗体间的互访
开始做Winform开发的时候,两个窗体之间的互访一直是我比较头疼的!当然要实现互访的方法非常多,较常用的有通过构造直接传值。昨天又试了两种方法。 两个窗体的互访,其实就相当于是两个类之间的互访。Winform里面默认窗体的属性都是设置为private的,所以,当你另一个类要访问时,肯定是访问不到另一个类内部定义的private的属性。那么只需要改变private为pub原创 2009-10-23 08:52:00 · 244 阅读 · 0 评论 -
Visual Studio 2008快捷键大全
(原帖地址:http://hi.baidu.com/crp8/blog/item/1617262ad20b543c5343c1c7.html) Ctrl+m+Crtr+o折叠所有大纲Ctrl+M+Crtr+P: 停止大纲显示Ctrl+K+Crtr+C: 注释选定内容Ctrl+K+Crtr+U: 取消选定注释内容Ctrl+J : 列出成员 智能感知Shift+Alt+Enter: 切换全转载 2009-11-26 14:34:00 · 298 阅读 · 0 评论 -
C# 邮件发送
C# 中邮件的发送是非常容易实现的!用微软的Mail类库可以轻松实现。using System.Net.Mail;namespace SiLiMail.BLL{ /// /// 邮件发送类 /// public class SendEmail { ///原创 2010-02-01 09:12:00 · 342 阅读 · 0 评论 -
C#实现对Excel文件的读取和写入操作
最近公司要求对添加的外链进行批量检查。需要从Excel中读取源数据,检查后把结果再导出为Excel。在网上搜寻了一番,发现对Excel的操作大致为两种: 1、使用ado.net将Excel文件当做数据源来读取; 2、使用com组件(Excel组件)来实现对Excel的操作。 我在自己的项目中是使用的ado.net来读取数据,然后使用Excel组原创 2009-12-10 13:39:00 · 815 阅读 · 0 评论 -
C#读取Excel文件两招搞定
C#读取Excel文件方法一:直接读取(这种直接读取单元格的方法释放很重要)Excel.Application excel=null; Excel.Workbooks wbs=null; Excel.Workbook wb=null; Excel.Worksheet ws=null; Excel.Range r转载 2009-12-15 16:26:00 · 603 阅读 · 0 评论 -
该如何决定何时使用托管线程池?
转载出处:http://www.tz8.net/post/74.html ThreadPool 类为应用程序提供一个由系统管理的辅助线程池,从而使您可以集中精力于应用程序任务而不是线程管理。如果您具有需要后台处理的短期任务,则托管线程池是可以利用多个线程的便捷方式。 注意:对于与用户界面交互的后台任务,.NET Framework 2.0 版还提供了 BackgroundW转载 2009-12-16 13:11:00 · 414 阅读 · 0 评论 -
关于判断线程池内所有线程是否已全部完成工作的方法
#region 检查正在执行任务的线程数 /// /// 检查正在执行任务的线程 /// /// private void GetNumberOfRuningThreads() { while (true) {原创 2009-12-19 08:27:00 · 670 阅读 · 0 评论 -
C#利用正则去除超链接
正则表达式一直是个人比较头大的,也一直没好好抽出时间学习正则!今天忽然要批量去除产品描述中的所有超链接!唉~~~代码如下:string ds = Regex.Replace(row["products_description"].ToString(),"","",RegexOptions.Compiled);ds = Regex.Replace(ds, "", "");第一条只能去原创 2010-03-05 15:10:00 · 1700 阅读 · 0 评论 -
Winfrom连接Access数据库查询某一时间段的数据
平时一直用的是SQL Server2005 和Mysql,做一个小工具时第一次使用Access,语句基本和SQL Server2005是一样的!今天碰到要查询某个时间段内的数据。还是按照SQL Server的写法:SELECT * FROM tb_link WHERE create BETWEEN 2009-12-28 AND 2009-12-30;原创 2009-12-30 09:31:00 · 915 阅读 · 0 评论 -
获取本机名、本机IP地址、MAC地址
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using Sy原创 2010-01-05 14:34:00 · 477 阅读 · 0 评论 -
Winform 防止应用程序重复启动
在入口文件Program.cs中添加如下代码:static class Program { /// /// 应用程序的主入口点。 /// [STAThread] static void Main() { bool Exist = false;原创 2010-01-07 15:22:00 · 902 阅读 · 0 评论 -
关于类型初始值设定项引发异常的解决方案
今天在WinForm里面建工程的时候添加了一个config文件,原来都是用的默认的App.config,今天进行了重命名,把App.config改成了ThecTools.config。之后引用了Mysql.Data.dll。接下来就出现了莫名其妙的问题,每次程序虽然都可以正常启动,但只要一执行到实例化mysql操作类的地方,即MysqlHelper mysql = new MysqlHelper(原创 2010-03-24 13:25:00 · 2765 阅读 · 1 评论 -
Visual Studio 2008破解方法
转载出处:http://blog.csdn.net/eduxh/archive/2009/06/13/4265590.aspx现在大多数下载的vs.net2008是90天试用版的,90天试用版的只是一个cd-key的问题,只要将这个改为正式的就ok了在网上搜索很多的方法,下面共享给大家:1.把Setup/setup.sdb文件中的[Product Key],由“T2CRQGDK转载 2010-05-02 10:08:00 · 325 阅读 · 0 评论 -
使用LumiSoft.Net.POP3读取mailto乱码的解决方案
最近再做一个邮件管理客户端,使用了第三方的LumiSoft.Net.POP3来收取邮件。发现唯独mailto这里得到的是乱码,如下:=?utf-8?B?6JKLIOa1qemSpg==?= 在网上查找了一番才知道,=?utf-8?B?6JKLIOa1qemSpg==?=这串东东表示的是采用UTF8编码,传输编码为Base64,所以需要先将密文用Base64编码取出,再使原创 2010-01-26 09:32:00 · 1950 阅读 · 0 评论 -
C# 将PDF文件转换为TXT文件输出
最近下载了很多pdf电子书想拿到手机上看,突然发现手机只支持txt格式的文件,并不支持pdf格式的电子书。于是只好自己写个小工具来批量的将pdf文件转换为txt文件。 这个转换需要用到PDFBox第三方控件。这是一个Java类库。但是.NET也一样可以用的。首先上PDFBox的官网下载最新版的PDFBox,然后在项目中引用IKVM.GNU.Classpath.dll、原创 2010-01-14 13:51:00 · 2447 阅读 · 2 评论 -
续 Winform中线程Timer类的使用(关于backgroundWorker类的使用)
上一篇文章(Winform中线程类的Timer使用),发现其中有不少错误和不合理的地方。在上文中用到了System.Threading.Timer,这个定时器可以按照你指定的时间间隔来执行一个方法。我当时是用这个定时器来监控一个状态变量,一旦该状态变量改变了则执行线程 t 的销毁工作。但是后来想想总感觉这样做不太好,太被动。而且当时显示进度条的方法里面是一个while(true)的死循原创 2009-11-17 16:20:00 · 2469 阅读 · 1 评论 -
多线程采集器小结
这两天因为要从网上采集数据,就改造了下之前写的那个采集器(之前那个是单个线程的,效率非常低,昨天改为多线程的了。),使用了ThreadPool(线程池)。感觉线程池还是相当的好用的。但同时也还有好多问题没有搞清楚。虽然数据时顺利采下来了,但在接下来的日子里还是要好好把没弄清楚的搞清楚。今天就暂时先做下粗略的小结。 采集器的界面如下,做的非常简单。原创 2009-11-07 15:14:00 · 1467 阅读 · 1 评论 -
浅述WinForm多线程编程与Control.Invoke的应用
VS2008、C#3.0在WinForm开发中,我们通常不希望当窗体上点了某个按钮执行某个业务的时候,窗体就被卡死了,直到该业务执行完毕后才缓过来。一个最直接的方法便是使用多线程。多线程编程的方式在WinForm开发中必不可少。本文介绍在WinForm开发中如何使用多线程,以及在线程中如何通过Control.Invoke方法返回窗体主线程执行相关操作。-. WinFor转载 2009-11-09 11:48:00 · 424 阅读 · 0 评论 -
C# 获取时间差
C#获取两个时间段之间的差的天数、小时、分钟、秒、毫秒,主要就是用到TimeSpan,代码如下: TimeSpan ts = DateTime.Now - Convert.ToDateTime("1970-1-1"); double time1 = ts.TotalMilliseconds; TimeSpan ts2 = DateT原创 2009-11-10 17:34:00 · 3533 阅读 · 1 评论 -
C#来创建和读取XML文档
扩展标记语言XML(eXtensible MarkupLanguage),是由W3C组织制定的。做为用于替代HTML语言的一种新型的标记语言,XML内部有着很多基本标准,XML就是通过与这些相关标准地结合,应用于科学计算、电子出版、多媒体制作和电子商务的。C#作为一种新型的程序语言,是.Net框架的一个重要组成部分,他和XML的关系颇深。本文就从一个方面来探讨一下这二者的关系转载 2009-11-12 09:00:00 · 244 阅读 · 0 评论 -
.NET委托---一个睡前小故事
英文版原作者:Chris Sells(www.sellsbrothers.com) 翻译:袁晓辉(www.farproc.com http://blog.csdn.net/uoyevoli) 原文地址: http://dev.csdn.net/article/82/82644.shtm 紧耦合 从前,在南方转载 2009-11-12 08:52:00 · 206 阅读 · 0 评论 -
MySql复制表数据
最近需要将几张不同的表中的数据复制到另一张单独的表中,表结构都是一样的。可以直接在数据库中写一条SQL语句解决,如下: INSERT INTO new_talbe_name(field_name,field_name,field_name...) SELECT field_name,field_name,field_name... FROM old原创 2009-11-13 11:21:00 · 1826 阅读 · 0 评论 -
C#的多线程机制探索
下面的例程演示了ThreadPool的用法。首先程序创建了一个ManualResetEvent对象,该对象就像一个信号灯,可以利用它的信号来通知其它线程,本例中当线程池中所有线程工作都完成以后,ManualResetEvent的对象将被设置为有信号,从而通知主线程继续运行。它有几个重要的方法:Reset(),Set(),WaitOne()。初始化该对象时,用户可以指定其默认的状态(有信号转载 2009-11-14 09:51:00 · 253 阅读 · 0 评论 -
在C#中使用代理的方式触发事件
事件(event)是一个非常重要的概念,我们的程序时刻都在触发和接收着各种事件:鼠标点击事件,键盘事件,以及处理操作系统的各种事件。所谓事件就是由某个对象发出的消息。比如用户按下了某个按钮,某个文件发生了改变,socket上有数据到达。触发事件的对象称作发送者(sender),捕获事件并且做出响应的对象称作接收者(receiver),一个事件可以存在多个接受者。在异步机制中,转载 2009-11-14 15:51:00 · 317 阅读 · 0 评论 -
WinForm中线程类的Timer使用
最近在做一些小工具,要实现一个功能就是数据复制。界面如下: 由于每批次的数据量都比较大,在执行操作时如果界面没有任何提示,总感觉不是太友好,于是想加一个进度条,在进行复制的时候同步滚动。不然可能会造成假死的错觉。 想实现的功能是:复制数据的同时,循环滚动进度条,复制结束,进度条也归零。首先想到的就是用多线程来做,一个线程专门负责循环滚动进度条原创 2009-11-14 10:59:00 · 1265 阅读 · 1 评论 -
C# 反射技术应用
反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件,以及构造函数等。还可以获得每个成员的名称、限定符和参数等。有了反射,即可对每一个类型了如指掌。如果获得了构造函数的信息,即可直接创建对象,即使这个对象的类型在编译时还不知道。 1转载 2009-11-12 09:07:00 · 384 阅读 · 0 评论 -
C# 委托的同步调用和异步调用
委托的Invoke方法用来进行同步调用。同步调用也可以叫阻塞调用,它将阻塞当前线程,然后执行调用,调用完毕后再继续向下进行。 同步调用的例子:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->using System;转载 2009-11-12 09:10:00 · 207 阅读 · 0 评论 -
验证登录后关闭登录窗口,显示主窗口的解决方法
最近想做一个基于Socket的通讯工具,想模仿QQ那样,需要先登录,登录成功后才显示主界面。但一开始的时候只要对登录的窗体做Close,然后程序就直接退出了。因为程序入口是登陆窗体,一旦Close了,整个程序自然也就退出了,如果想实现关闭登录界面(不是Hide()隐藏),显示主界面的话,可以利用DialogResult来实现。主界面设置为入口的主界面。主界面的Load事件如下:原创 2009-11-17 18:44:00 · 1441 阅读 · 1 评论 -
Base64加密解密
public class Base64 { private static string base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";//编码后的字符集 private static int[] base64DecodeCha转载 2010-05-29 09:22:00 · 285 阅读 · 0 评论