分类

链接

2011 年 6 月
 12345
6789101112
13141516171819
20212223242526
27282930  

近期文章

热门标签

新人福利,免费薅羊毛

解决IE8背景图片错位和不显示的问题

解决IE8背景图片错位和不显示的问题在IE8下不能显示背景图片的原因是因为子容器使用了float浮动而没有真正闭合,这也是div无法自适应高度的一个原因。如果父div没有设float而其子div却设了float的话,父div无法包住整个子DIV,这种情况一般出现在一个父DIV下包含多个子DIV。解决办法:给父DIV也设上float,即可解决父容器下背景图片显示问题。

Others 暂无评论 阅读(1,695)

dat保存登陆密码

winform--记住密码 收藏    要引用IO包   private string accountFilePath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) +"\\accounts.dat ";   private IDictionary<string, string> accounts = new SortedList<string, string>();   /// <summary>         /// 记住密码         /// </summary>         private void ReloadAccounts()         {             this.txtUserName.AutoCompleteCustomSource.Clear();             accounts.Clear();      ...

.NET 暂无评论 阅读(1,742)

C#事件委托(三)

现在假设我们想要获得多个订阅者的返回值,以List<string>的形式返回,该如何做呢?我们应该记得委托定义在编译时会生成一个继承自MulticastDelegate的类,而这个MulticastDelegate又继承自Delegate,在Delegate内部,维护了一个委托链表,链表上的每一个元素,为一个只包含一个目标方法的委托对象。而通过Delegate基类的GetInvocationList()静态方法,可以获得这个委托链表。随后我们遍历这个链表,通过链表中的每个委托对象来调用方法,这样就可以分别获得每个方法的返回值:class Program4 { static ...

.NET 暂无评论 阅读(1,814)

C#事件委托(二)

Observer设计模式简介上面的例子显然能完成我们之前描述的工作,但是却并不够好。现在假设热水器由三部分组成:热水器、警报器、显示器,它们来自于不同厂商并进行了组装。那么,应该是热水器仅仅负责烧水,它不能发出警报也不能显示水温;在水烧开时由警报器发出警报、显示器显示提示和水温。这时候,上面的例子就应该变成这个样子: // 热水器public class Heater { private int temperature; // 烧水 private void BoilWater() { for (int i = 0; i <= 100; i++) { t...

.NET 暂无评论 阅读(1,880)

C# 中的委托和事件(一)

引言委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论。将方法作为方法的参数我们先不管这个标题如何的绕口,也不管...

.NET 暂无评论 阅读(1,714)

C#实现程序的版本升级更新

C#实现程序的版本升级更新 收藏    我们做了程序,不免会有版本升级,这就需要程序有自动版本升级的功能。 那么看看我是如何实现程序自动更新的。 直接上代码: using System;    using System.Collections.Generic;    using System.Text;    using System.Reflection;    using System.IO;    using System.Net;    using System.Xml;       namespace Update    {        /// <summary>        /// 更新完成触发的事件        /// </summary>        public delegate void UpdateState();      ...

.NET 暂无评论 阅读(1,965)

C#模拟鼠标点击

using System.Runtime.InteropServices; #region API [DllImport("user32.dll")] static extern void mouse_event(MouseEventFlag flags, int dx, int dy, uint data, UIntPtr extraInfo); [Flags] enum MouseEventFlag : uint { Move = 0x0001, LeftDown = 0x0002, LeftUp = 0x0004, RightDown = 0x0008, RightUp = 0x0010, MiddleDown = 0x0020, MiddleUp = 0x0040, XDown = 0x0080, XUp = 0x0100, Wheel = 0x0800, VirtualDesk = 0x4000, Absolute = 0x8000 } #endregion //以上代码放在Class 任意处 mouse_ev...

.NET 暂无评论 阅读(2,649)

C#连接EXCEL数据库

using System.Data.OleDb; //命名空间 private void button1_Click(object sender, EventArgs e)  {   string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=student.xls; Extended Properties=Excel 8.0;"; OleDbConnection conn = new OleDbConnection(strConn) string sql = "select * from [student$]"; //注意EXCEL数据库表形式 OleDbCommand cmd = new OleDbCommand(sql, conn); Ol...

.NET, Access 暂无评论 阅读(2,167)

C#跨线程调用

跨线程调用窗体控件 用户不喜欢反应慢的程序。在执行耗时较长的操作时,使用多线程是明智之举,它可以提高程序 UI 的响应速度,使得一切运行显得更为快速。在 Windows 中进行多线程编程曾经是 C++ 开发人员的专属特权,但是现在,可以使用所有兼容 Microsoft .NET 的语言来编写。不过Windows 窗体体系结构对线程使用制定了严格的规则。如果只是编写单线程应用程序,则没必要知道这些规则,这是因为单线程的代码不可能违反这些规则。然而,一旦采用多线程,就需要理解 Windows 窗体中最重要的一条线程规则:除...

.NET 暂无评论 阅读(2,163)

c#获取系统内存等信息

//cpu频率using Microsoft.Win32;private int GetCPUFrequency() { RegistryKey rk = Registry.LocalMachine.OpenSubKey(@"HARDWAREDESCRIPTIONSystemCentralProcessor"); object obj = rk.GetValue("~MHz"); int CPUFrequency = (int)obj; return CPUFrequency; }////////////////////////////////////磁盘空间 Managementusing System.Management;private long GetFreeDiskSpace() { ManagementObject disk = new Mana...

.NET 暂无评论 阅读(2,575)