﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-AndyZhang-随笔分类-C#   WinForm</title><link>http://www.blogjava.net/AndyZhang/category/51490.html</link><description>welcome to java world</description><language>zh-cn</language><lastBuildDate>Tue, 04 Mar 2014 19:04:56 GMT</lastBuildDate><pubDate>Tue, 04 Mar 2014 19:04:56 GMT</pubDate><ttl>60</ttl><item><title>WinForm窗体间如何传值</title><link>http://www.blogjava.net/AndyZhang/archive/2014/03/04/410598.html</link><dc:creator>SkyDream</dc:creator><author>SkyDream</author><pubDate>Tue, 04 Mar 2014 08:32:00 GMT</pubDate><guid>http://www.blogjava.net/AndyZhang/archive/2014/03/04/410598.html</guid><description><![CDATA[<div m_b_15"="" style="margin: 10px 0px 0px; padding: 15px; background-color: #f7f7f7; border: 1px solid #e1eded; line-height: 24px; font-family: simsun; overflow: hidden; text-indent: 24px; color: #333333;"><span style="margin: 0px; padding: 0px; font-weight: bold;">本文导读</span>：稍微复杂一点的程序一般都有两个或者更多的窗体。有时在程序设计中，数据不仅要在同一个窗体中传递，还要在窗体间传递，尤其是用子窗体如何改变父窗体。WinForm多窗体间传值的方法有很多，根据需要传送的值的类型可以采用不同的方法</div><div id="contentText" style="margin: 0px; height: 9940px; overflow: hidden; color: #333333; font-family: simsun; line-height: 26px; background-color: #ffffff;"><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">窗体间传递数据，无论是父窗体操作子窗体，还是子窗体操作符窗体，有以下几种方式：</strong></p><p style="margin: 20px 0px 0px; padding: 0px;">&nbsp;</p><ol style="margin: 0px; padding: 0px; list-style: none;"><li style="margin: 0px; padding: 0px; list-style: none;">公共静态变量；</li><li style="margin: 0px; padding: 0px; list-style: none;">使用共有属性；</li><li style="margin: 0px; padding: 0px; list-style: none;">使用委托与事件；</li><li style="margin: 0px; padding: 0px; list-style: none;">通过构造函数把主窗体传递到从窗体中；</li></ol><p style="margin: 20px 0px 0px; padding: 0px;">&nbsp;</p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #000000;"><strong style="margin: 0px; padding: 0px;">一、通过静态变量</strong></span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #000000;"><strong style="margin: 0px; padding: 0px;">特点：传值是双向的，实现简单</strong></span></p><p style="margin: 20px 0px 0px; padding: 0px;">&nbsp;</p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #000000;"><strong style="margin: 0px; padding: 0px;">实现代码如下：</strong></span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #000000;">在一个<span face="Times New Roman" style="margin: 0px; padding: 0px;">app</span>类中定义一个静态成员<span face="Times New Roman" style="margin: 0px; padding: 0px;">value</span></span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">public class app</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">{</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">public static string value;</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">}</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #000000;">在窗体<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form1</span>中这样调用</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">app.value = "f2"; //</span>给静态成员赋值</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">new Form2 ( ).Show ( ); //</span>显示<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form2</span></span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #000000;">在窗体<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form2</span>中</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">this.Text = app.value; //</span>取回<span face="Times New Roman" style="margin: 0px; padding: 0px;">app.value</span>的值</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">app.value = "Form2"; //</span>给<span face="Times New Roman" style="margin: 0px; padding: 0px;">app.value</span>赋值，以便其他窗体调用</span></p><p style="margin: 20px 0px 0px; padding: 0px;">&nbsp;</p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #000000;"><strong style="margin: 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; font-size: 16px;">二、公共变量</span><span style="margin: 0px; padding: 0px; font-size: 16px;">传值</span></strong></span></p><p style="margin: 20px 0px 0px; padding: 0px;">这种方法就是利用一个公共变量，先把需要的值存放到这个公共变量，然后需要的时候再通过读取该变量的值来使用</p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">例子</strong></p><p style="margin: 20px 0px 0px; padding: 0px;">Form1：</p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">public static string Form1Value; // 注意，必须申明为static变量</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">private void button1_Click(object sender, EventArgs e)</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">{</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">Form1Value = "来自Form1";</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">new Form2().Show();</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">}</span></p><p style="margin: 20px 0px 0px; padding: 0px;">Form2：</p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">private void Form_Load(object sender, EventArgs e)</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">{</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">MessageBox.Show(Form1.Form1Value);</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">}</span></p><p style="margin: 20px 0px 0px; padding: 0px;">这种方式传值，理解和使用上都相对的简单，但是容易让变量串值，比如第一次修改为&#8220;a&#8221;，而第二次修改为&#8220;b&#8221;，则有可能本来需要&#8220;a&#8221;值的结果变成了&#8220;b&#8221;。</p><p style="margin: 20px 0px 0px; padding: 0px;">&nbsp;</p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #000000;"><strong style="margin: 0px; padding: 0px;">三、静态方法方式访问</strong></span></p><p style="margin: 20px 0px 0px; padding: 0px;">这种方法与传值方法的第一种有些类似，就是将需要被其他窗体访问的方法用static定义，以便其他传递可以直接访问到</p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">例子</strong>：</p><p style="margin: 20px 0px 0px; padding: 0px;">Form1:</p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">private void button1_Click(object sender, EventArgs e)</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">{</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">new Form2().Show();</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">}</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">public static void FF()</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">{</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">MessageBox.Show("Form1方法");</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">}</span></p><p style="margin: 20px 0px 0px; padding: 0px;">Form2:</p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">private void Form_Load(object sender, EventArgs e)</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">{</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">Form1.FF();</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">}</span></p><p style="margin: 20px 0px 0px; padding: 0px;">使用这种方法访问其他窗体的方法，在跨窗体上实现方便，但是需要需要访问到控件值则不能直接访问，需要将值先传递给其他窗体，再有窗体传递回来，或者存储在其他变量后对这变量进行访问。</p><p style="margin: 20px 0px 0px; padding: 0px;">&nbsp;</p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">四、通过窗体的公有属性值</strong></p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">特点：实现简单</strong></p><p style="margin: 20px 0px 0px; padding: 0px;">&nbsp;</p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">实现代码如下：</strong></p><p style="margin: 20px 0px 0px; padding: 0px;">在窗体<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form2</span>中定义一个公有属性<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form2Value,</span>获取和设置<span face="Times New Roman" style="margin: 0px; padding: 0px;">textBox1</span>的文本值</p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">public string Form2Value</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">{</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">get</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">{</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">return this.textBox1.Text;</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">}</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">set</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">{</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">this.textBox1.Text = value;</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">}</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">}</span></p><p style="margin: 20px 0px 0px; padding: 0px;">在窗体<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form1</span>中这样调用</p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">Form2 f2 = new Form2 ( );</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">f2.Form2Value = "Ok"; //</span>给<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form2</span>的<span face="Times New Roman" style="margin: 0px; padding: 0px;">textBox1</span>赋值<span face="Times New Roman" style="margin: 0px; padding: 0px;">Ok</span></span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">f2.ShowDialog ( );</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">&nbsp;</strong></p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">五、通过窗体的公有属性值和<span face="Times New Roman" style="margin: 0px; padding: 0px;">Owner</span>属性</strong></p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">特点：实现简单<span face="Times New Roman" style="margin: 0px; padding: 0px;">,</span>灵活</strong></p><p style="margin: 20px 0px 0px; padding: 0px;">&nbsp;</p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">实现代码如下</strong>：</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">在窗体<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form1</span>中</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">public int Form1Value = 1;</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">Form2 f2 = new Form2 ( );</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;"><span face="Times New Roman" style="margin: 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">f2.ShowDialog ( this ); //</span>把<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form1</span>作为<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form2</span>的所有者传递给<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form2</span></span></span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">在窗体<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form2</span>中</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;"><span face="Times New Roman" style="margin: 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">//Form2</span>的所有者是<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form1</span></span></span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">Form1 f1 = ( Form1 ) this.Owner;</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;"><span face="Times New Roman" style="margin: 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">//</span>取到<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form1</span>的值是<span face="Times New Roman" style="margin: 0px; padding: 0px;">1</span></span></span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">MessageBox.Show ( f1.Form1Value .ToString ( ) );</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;"><span face="Times New Roman" style="margin: 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">//</span>给<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form1</span>的<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form1Value</span>赋值<span face="Times New Roman" style="margin: 0px; padding: 0px;">222</span></span></span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">f1.Form1Value = 222;</span></p><p style="margin: 20px 0px 0px; padding: 0px;">&nbsp;</p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">六、</span>通过窗体的公有属性值和<span face="Times New Roman" style="margin: 0px; padding: 0px;">Application.OpenForms</span>属性</strong></p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">说明：<span face="Times New Roman" style="margin: 0px; padding: 0px;">Application.OpenForms</span>属性：获取属于应用程序的打开窗体的集合。<span face="Times New Roman" style="margin: 0px; padding: 0px;">(</span>此属性在<span face="Times New Roman" style="margin: 0px; padding: 0px;">.NET Framework2.0</span>版中<span face="Times New Roman" style="margin: 0px; padding: 0px;">)</span></span></strong></p><p style="margin: 20px 0px 0px; padding: 0px;">&nbsp;</p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">实现代码如下</strong>：</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">在窗体<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form1</span>中</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">public int Form1Value = 1;</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">Form2 f2 = new Form2 ( );</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">f2.Show ( );</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">在窗体<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form2</span>中</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">string formName = "Form1";</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">Form fr = Application.OpenForms [ formName ];</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">if ( fr != null )</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">{</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">Form1 f1 = ( Form1 ) fr;</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;"><span face="Times New Roman" style="margin: 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">//</span>取到<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form1</span>的值是<span face="Times New Roman" style="margin: 0px; padding: 0px;">1</span></span></span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">MessageBox.Show ( f1.Form1Value.ToString ( ) );</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;"><span face="Times New Roman" style="margin: 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">//</span>给<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form1</span>的<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form1Value</span>赋值<span face="Times New Roman" style="margin: 0px; padding: 0px;">222</span></span></span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">f1.Form1Value = 222;</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">}</span></p><p style="margin: 20px 0px 0px; padding: 0px;">&nbsp;</p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #000000;"><span face="Times New Roman" style="margin: 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; font-size: 16px;">七、传参式传值</span></strong></span></span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">此方法顾名思义就是将需要的值一参数形式传递给需要值的窗体</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">例子</strong>：</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">Form1：</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">private void button1_Click(object sender, EventArgs e)</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">{</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">new Form2("来自Form1").Show();</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">}</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">Form2:</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">public Form2(string value)</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">{</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">InitializeComponent();</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">MessageBox.Show(vaue);</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">}</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">此种窗体间传值方法明显优与第一种的传值参数，也不会出现串数据现象，但是需要注意修改Form2的构造函数，每个窗体的默认构造函数默认都是无参数的，因此需要去修改构造函数。</span></p><p style="margin: 20px 0px 0px; padding: 0px;">&nbsp;</p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">八、通过构造函数</strong></p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">特点：传值是单向的（不可以互相传值），实现简单</strong></p><p style="margin: 20px 0px 0px; padding: 0px;">&nbsp;</p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">实现代码如下：</strong></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">在窗体<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form2</span>中</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">int value1;</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">string value2;</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">public Form2 ( int value1 , string value2 )</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">{</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">InitializeComponent ( );</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">this.value1 = value1;</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">this.value2 = value2;</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">}</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">在窗体<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form1</span>中这样调用</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;"><span face="Times New Roman" style="margin: 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">new Form2 ( 111 , "222" ).Show ( ); //</span>这样就把<span face="Times New Roman" style="margin: 0px; padding: 0px;">111,"222",</span>这<span face="Times New Roman" style="margin: 0px; padding: 0px;">2</span>个值传送给了<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form2</span></span></span></p><p style="margin: 20px 0px 0px; padding: 0px;">&nbsp;</p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #000000;">九、用委托来实现。</span></strong></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">委托可以把一个方法作为参数带入另一个方法，在窗体传值中，子窗体需要执行一个方法来改变父窗体的值，</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">而这个方法，则可以用委托从父窗体传递过来。在父窗体中，声明修改文本框的方法AfterChildChange，在new一个子窗体的时候，将这个方法传递给子窗体。那么当子窗体点击同步按钮时，会执行父窗体的AfterChildChange方法，已达到修改文本框值的目的。</span></p><p style="margin: 20px 0px 0px; padding: 0px;">&nbsp;</p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">例子</strong></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">1、在子窗体中设置一个委托类型的属性：</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">public Action&lt;string&gt; AfterChangeTextDel { get; set; }</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">2、在子窗体同步按钮中：</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">if (AfterChangeTextDel != null)<br />{<br />AfterChangeTextDel(this.textBox1.Text);//执行委托<br />}</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">3、在父窗体中添加方法：</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">public void AfterChildChange(string text)<br />{<br />txtName.Text = text;<br />}</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">4、在父窗体启动子窗体按钮：</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">ChildFrm frm =new ChildFrm();</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">frm.AfterChangeTextDel = new Action&lt;string&gt;(this.AfterChildChange);</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">frm.Show();</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">5、这样也能实现窗体传值，子窗体的委托可以在父窗体 其他地方可以进行直接执行。：解决此问题。微软引入了事件。</span></p><p style="margin: 20px 0px 0px; padding: 0px;">&nbsp;</p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #000000;"><strong style="margin: 0px; padding: 0px;">十、用事件来实现</strong></span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">事件是委托类型的对象。它内部是用委托来实现的，对于事件来说，外部只能注册自己+=，注销自己-=,外界不可以注销其他的注册者，也不能主动触发事件。而委托则无法实现这些控制，因此诞生了事件这话总语法。</span></p><p style="margin: 20px 0px 0px; padding: 0px;">&nbsp;</p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">实现代码如下</strong></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">在窗体<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form2</span>中定义公有属性<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form2Value,</span>获取和设置<span face="Times New Roman" style="margin: 0px; padding: 0px;">textBox1</span>的文本值</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">并且还定义一个<span face="Times New Roman" style="margin: 0px; padding: 0px;">accept</span>事件</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">public string Form2Value</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">{</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">get</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">{</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">return this.textBox1.Text;</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">}</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">set</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">{</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">this.textBox1.Text = value;</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">}</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">}</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">public event EventHandler accept;</span></p><p style="margin: 20px 0px 0px; padding: 0px;">&nbsp;</p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">private void button1_Click ( object sender , EventArgs e )</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">{</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">if ( accept != null )</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">{</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">accept ( this , EventArgs.Empty ); //</span>当窗体触发事件，传递自身引用</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">}</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">}</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">在窗体<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form1</span>中</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">Form2 f2 = new Form2 ( );</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">f2.accept += new EventHandler ( f2_accept );</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">f2.Show ( );</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">void f2_accept ( object sender , EventArgs e )</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">{</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">//</span>事件的接收者通过一个简单的类型转换得到<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form2</span>的引用</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">Form2 f2 = (Form2) sender;</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;"><span face="Times New Roman" style="margin: 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">//</span>接收到<span face="Times New Roman" style="margin: 0px; padding: 0px;">Form2</span>的<span face="Times New Roman" style="margin: 0px; padding: 0px;">textBox1.Text</span></span></span></span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">this.textBox1.Text = f2.Form2Value;</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">}</span></p></div><img src ="http://www.blogjava.net/AndyZhang/aggbug/410598.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AndyZhang/" target="_blank">SkyDream</a> 2014-03-04 16:32 <a href="http://www.blogjava.net/AndyZhang/archive/2014/03/04/410598.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>（二）　　　内嵌WORD/OFFICE的WINFORM程序——DSOFRAMER使用小结</title><link>http://www.blogjava.net/AndyZhang/archive/2012/06/05/379993.html</link><dc:creator>SkyDream</dc:creator><author>SkyDream</author><pubDate>Tue, 05 Jun 2012 02:03:00 GMT</pubDate><guid>http://www.blogjava.net/AndyZhang/archive/2012/06/05/379993.html</guid><description><![CDATA[最近一直想用VC#2005做个内嵌WORD/OFFICE的WINFORM程序，目前主要有以下解决途径：<br /><br />1、直接通过API把WORD/OFFICE的窗口句柄给放到WINFORM中（感觉较为复杂）；<br /><br />2、通过WEB BROWSER；<br /><br />3、利用DSOFRAMER。<br /><br />本人都测试了一下，觉得DSOFRAMER更符合自己的愿望，故决定使用DSOFRAMER来实现。<br /><br />操作步骤：<br /><br />1、从微软网站下载DsoFramer_KB311765_x86.exe，解开将得到dsoframer.ocx；<br /><br />2、把dsoframer.ocx拷贝到系统目录下，并注册，我是写了一个reg.bat来实现：<br /><br />copy dsoframer.ocx c:\windows\system32\dsoframer.ocx<br /> regsvr32.exe c:\windows\system32\dsoframer.ocx<br /><br />3、启动VS2005，新创建一个WINFORM的C#程序；<br /><br />4、在设计工具栏中，新添加选项，在弹出的页面中选择&#8220;TAB&#8221;页，然后浏览，选择c:\windows\system32\dsoframer.ocx进行添加，此时设计工具栏中将看到这个工具，名字为&#8220;DSO FRAMER CONTROL OBJECT&#8221;；<br /><br />5、拖动此工具到某设计FORM窗口中，此时将在代码文件中添加了以下行：<br /><br />private AxDSOFramer.AxFramerControl axFramerControl1;<br /><br />6、打开文件，this.axFramerControl1.Open(_filePath);//注：_filePath为.doc或者.xls为后缀的文件；<br /><br />7、此时就可以直接在打开的WORD/EXCEL上进行编辑保存等等操作了。<br /><br /><p>注：在操作过程中，发现按打印预览按钮后关闭，会引起WORD/EXCEL报错，找了好久，后来直接安装OFFICE2003 SP3，哈哈，fix the bug，不会报错了。
 
</p><p><br /></p><p>本文来自http://www.cnblogs.com/tianfu/archive/2009/05/07/1452047.html</p><p><br /></p><p><br /></p><p>1.将dsoframer.ocx复制到c:\windows\system32\<br />2.双击运行regocx.bat文件<br /><br />在vs2010中使用dsoframer控件：<br />1.在工具箱中添加项，在COM 选项卡中选择已注册的dsoframer控件。<br />2.将公共控件中的DSO Framer控件拖到表单上。<br />3.在DSO中打开Office文件代码：<br />this.axFramerControl1.Open("c:\\test.xls");<br />4.将Office文件保存的代码：<br />this.axFramerControl1.Save("c:\\test.xls",true,"myname","mypass");<br /><br />        例如：<br /><br />        private void button1_Click(object sender, EventArgs e)<br />        {<br />            this.axFramerControl1.Open("C:\\Documents and Settings\\Administrator\\桌面\\复件 新建 Microsoft Word 文档.doc");<br />        }<br /><br />        private void button2_Click(object sender, EventArgs e)<br />        {<br />            this.axFramerControl1.Save("C:\\Documents and Settings\\Administrator\\桌面\\111111111 文档.doc", true, "myname", "mypass");<br />        }</p><img src ="http://www.blogjava.net/AndyZhang/aggbug/379993.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AndyZhang/" target="_blank">SkyDream</a> 2012-06-05 10:03 <a href="http://www.blogjava.net/AndyZhang/archive/2012/06/05/379993.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>（一）　　导出excel表（将数据库里的数据表保存为xls的文件）</title><link>http://www.blogjava.net/AndyZhang/archive/2012/05/14/378120.html</link><dc:creator>SkyDream</dc:creator><author>SkyDream</author><pubDate>Mon, 14 May 2012 08:39:00 GMT</pubDate><guid>http://www.blogjava.net/AndyZhang/archive/2012/05/14/378120.html</guid><description><![CDATA[
<div>1.先得出一个表Table。<br />2.在代码中建一个excel实例。<br />&nbsp;&nbsp; 在建实例前先引用<font face="Verdana">Microsoft.Office.Interop.Excel</font>组件&#8212;&#8212;添加引用<br />&nbsp;&nbsp; Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();<br />&nbsp;&nbsp;&nbsp;excel.Workbooks.Add(true);<br />3.将table时的数据，循环遍历插入到excel中。<br /><br />具体实例如下：<br /><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string connectionstr = "Server=192.168.1.10;database=ssh;uid=sa;pwd=1234";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string sqlstr = "select * from medstock";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlConnection con = new SqlConnection(connectionstr);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlCommand cmd = new SqlCommand(sqlstr,con);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataSet ds = new DataSet();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataTable db = new DataTable();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlDataAdapter adp = new SqlDataAdapter(cmd);//由于SqlDataAdapter自身带有数据库打开与关闭功能，所以不用手动打开数据库与关闭。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; adp.Fill(ds,"table1");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; db = ds.Tables["table1"];<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//建列名，根据实际情况而定，即要在excel中显示的列名；<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string[] str=new string[db.Columns.Count];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; str.Length-2; i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str[i] = db.Columns[i+1].ColumnName;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //建excel实例。也就是table的容器；<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; excel.Workbooks.Add(true);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //先在excel中显示出table的列名；<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; str.Length; i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;excel.Cells[1, i + 1] = str[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //再向excel中循环添加表中的每一行的每一列；<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (db.Rows.Count &gt; 0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; db.Rows.Count; i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int j = 1; j &lt; db.Columns.Count; j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string str1 = db.Rows[i][j].ToString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; excel.Cells[i + 2, j] = "'" + str1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //设置禁止弹出保存和覆盖的询问提示框&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// excel.DisplayAlerts = false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// excel.AlertBeforeOverwriting = false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;excel.Save();//保存excel文件 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; excel.Quit();//确保Excel进程关闭<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;excel.Visible = true;// 前台可见 后台运行<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;excel = null;<br /><br /></font></div> 
<img src ="http://www.blogjava.net/AndyZhang/aggbug/378120.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AndyZhang/" target="_blank">SkyDream</a> 2012-05-14 16:39 <a href="http://www.blogjava.net/AndyZhang/archive/2012/05/14/378120.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C#  计算时间差 用timespan函数</title><link>http://www.blogjava.net/AndyZhang/archive/2012/05/02/377157.html</link><dc:creator>SkyDream</dc:creator><author>SkyDream</author><pubDate>Wed, 02 May 2012 04:33:00 GMT</pubDate><guid>http://www.blogjava.net/AndyZhang/archive/2012/05/02/377157.html</guid><description><![CDATA[
TimeSpan 结构 &nbsp;表示一个时间间隔。 <br /><br />命名空间:System<br /><p>程序集:mscorlib（在 mscorlib.dll 中）
 
</p><p>1.DateTime值类型代表了一个从公元0001年1月1日0点0分0秒到公元9999年12月31日23点59分59秒之间的具体日期时刻。因此，你可以用DateTime值类型来描述任何在想象范围之内的时间。一个DateTime值代表了一个具体的时刻<br /> 2.TimeSpan值包含了许多属性与方法，用于访问或处理一个TimeSpan值<br /> 下面的列表涵盖了其中的一部分：<br /> Add：与另一个TimeSpan值相加。 <br /> Days:返回用天数计算的TimeSpan值。 <br /> Duration:获取TimeSpan的绝对值。 <br /> Hours:返回用小时计算的TimeSpan值 <br /> Milliseconds:返回用毫秒计算的TimeSpan值。 <br /> Minutes:返回用分钟计算的TimeSpan值。 <br /> Negate:返回当前实例的相反数。 <br /> Seconds:返回用秒计算的TimeSpan值。 <br /> Subtract:从中减去另一个TimeSpan值。 <br /> Ticks:返回TimeSpan值的tick数。 <br /> TotalDays:返回TimeSpan值表示的天数。 <br /> TotalHours:返回TimeSpan值表示的小时数。 <br /> TotalMilliseconds:返回TimeSpan值表示的毫秒数。 <br /> TotalMinutes:返回TimeSpan值表示的分钟数。 <br /> TotalSeconds:返回TimeSpan值表示的秒数。<br /><br />TimeSpan( 10, 20, 30, 40, 50 ) 10.20:30:40.0500000<br /><br />TimeSpan( 1111, 2222, 3333, 4444, 5555 ) 1205.22:47:09.5550000<br /><br />TimeSpan (Int32, Int32, Int32) 将新的 TimeSpan 初始化为指定的小时数、分钟数和秒数。<br /><br /> TimeSpan (Int32, Int32, Int32, Int32) 将新的 TimeSpan 初始化为指定的天数、小时数、分钟数和秒数。<br /><br />TimeSpan (Int32, Int32, Int32, Int32, Int32) 将新的 TimeSpan 初始化为指定的天数、小时数、分钟数、秒数和毫秒数。<br />  <br /><br />ASP.NET 中，两个时间相减，得到一个 TimeSpan 实例，TimeSpan 有一些属性：Days、TotalDays、Hours、TotalHours、Minutes、TotalMinutes、Seconds、TotalSeconds、Ticks，注意没有 TotalTicks。<br /><br /> 这些属性名称开始理解有些困难，但阅读本文后，相应您一定茅塞顿开。<br /><br /> 举例说明<br /> &#8226;时间 1 是 2010-1-2 8:43:35； <br /> &#8226;时间 2 是 2010-1-12 8:43:34。<br /><br />用时间 2 减时间 1，得到一个 TimeSpan 实例。<br /><br /> 那么时间 2 比时间 1 多 9 天 23 小时 59 分 59 秒。<br /><br /> 那么，Days 就是 9，Hours 就是 23，Minutes 就是 59，Seconds 就是 59。<br /><br /> 再来看 Ticks，Tick 是一个计时周期，表示一百纳秒，即一千万分之一秒，那么 Ticks 在这里表示总共相差多少个时间周期，即：9 * 24 * 3600 * 10000000 + 23 * 3600 * 10000000 + 59 * 60 * 10000000 + 59 * 10000000 = 8639990000000。3600 是一小时的秒数。<br /><br /> TotalDays 就是把 Ticks 换算成日数，即：8639990000000 / (10000000 * 24 * 3600) = 9.99998842592593。<br /><br /> TotalHours 就是把 Ticks 换算成小时数，即：8639990000000 / (10000000 * 3600) = 239.999722222222。<br /><br /> TotalMinutes 就是把 Ticks 换算成分钟数，即：8639990000000 / (10000000 * 60) = 14399.9833333333。<br /><br /> TotalSeconds 就是把 Ticks 换算成秒数，即：8639990000000 / (10000000) = 863999。<br /><br /> 负数<br /><br /> 上面是较晚的日期减较早的日期，所以各属性值为正数，如果是较早的日期减较晚的日期，则属性值为负数。<br /><br />TimeSpan( <br /> int days, <br /> int hours, <br /> int minutes, <br /> int seconds <br /> )<br /><br /> 求离最近发表时间的函数<br /> public string DateStringFromNow(DateTime dt) <br /> { <br /> TimeSpan span = DateTime.Now - dt; <br /> if (span.TotalDays &gt; 60) <br /> { <br /> return dt.ToShortDateString(); <br /> } <br /> else if ( span.TotalDays &gt; 30 ) <br /> { <br /> return "1个月前"; <br /> } <br /> else if (span.TotalDays &gt; 14) <br /> { <br /> return "2周前"; <br /> } <br /> else if (span.TotalDays &gt; 7) <br /> { <br /> return "1周前"; <br /> } <br /> else if (span.TotalDays &gt; 1) <br /> { <br /> return string.Format("{0}天前", (int)Math.Floor(span.TotalDays)); <br /> } <br /> else if (span.TotalHours &gt; 1) <br /> { <br /> return string.Format("{0}小时前", (int)Math.Floor(span.TotalHours)); <br /> } <br /> else if (span.TotalMinutes &gt; 1) <br /> { <br /> return string.Format("{0}分钟前", (int)Math.Floor(span.TotalMinutes)); <br /> } <br /> else if (span.TotalSeconds &gt;= 1) <br /> { <br /> return string.Format("{0}秒前", (int)Math.Floor(span.TotalSeconds)); <br /> } <br /> else <br /> { <br /> return "1秒前"; <br /> } <br /> }<br /><br /> C#中使用TimeSpan计算两个时间的差值<br /><br /> 可以反加两个日期之间任何一个时间单位。<br /> private string DateDiff(DateTime DateTime1, DateTime DateTime2)<br /> {string dateDiff = null;<br /> TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);<br /> TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);<br /> TimeSpan ts = ts1.Subtract(ts2).Duration();<br /> dateDiff = ts.Days.ToString()+"天"+ ts.Hours.ToString()+"小时"+ ts.Minutes.ToString()+"分钟"+ ts.Seconds.ToString()+"秒";<br /> return dateDiff;<br /> }<br />  <br /><br />TimeSpan ts = Date1 - Date2; <br /> double dDays = ts.TotalDays;//带小数的天数，比如1天12小时结果就是1.5 <br /> int nDays = ts.Days;//整数天数，1天12小时或者1天20小时结果都是1 <br />  <br /><br />说明：<br /> 1.DateTime值类型代表了一个从公元0001年1月1日0点0分0秒到公元9999年12月31日23点59分59秒之间的具体日期时刻。因此，你可以用DateTime值类型来描述任何在想象范围之内的时间。一个DateTime值代表了一个具体的时刻<br /> 2.TimeSpan值包含了许多属性与方法，用于访问或处理一个TimeSpan值<br /> 下面的列表涵盖了其中的一部分：<br /> Add：与另一个TimeSpan值相加。<br /> Days:返回用天数计算的TimeSpan值。<br /> Duration:获取TimeSpan的绝对值。<br /> Hours:返回用小时计算的TimeSpan值<br /> Milliseconds:返回用毫秒计算的TimeSpan值。<br /> Minutes:返回用分钟计算的TimeSpan值。<br /> Negate:返回当前实例的相反数。<br /> Seconds:返回用秒计算的TimeSpan值。<br /> Subtract:从中减去另一个TimeSpan值。<br /> Ticks:返回TimeSpan值的tick数。<br /> TotalDays:返回TimeSpan值表示的天数。<br /> TotalHours:返回TimeSpan值表示的小时数。<br /> TotalMilliseconds:返回TimeSpan值表示的毫秒数。<br /> TotalMinutes:返回TimeSpan值表示的分钟数。<br /> TotalSeconds:返回TimeSpan值表示的秒数。<br />  <br /><br />/// &lt;summary&gt;<br /> /// 日期比较<br /> /// &lt;/summary&gt;<br /> /// &lt;param name="today"&gt;当前日期&lt;/param&gt;<br /> /// &lt;param name="writeDate"&gt;输入日期&lt;/param&gt;<br /> /// &lt;param name="n"&gt;比较天数&lt;/param&gt;<br /> /// &lt;returns&gt;大于天数返回true，小于返回false&lt;/returns&gt;<br /> private bool CompareDate(string today, string writeDate, int n)<br /> {<br /> DateTime Today = Convert.ToDateTime(today);<br /> DateTime WriteDate = Convert.ToDateTime(writeDate);<br /> WriteDate = WriteDate.AddDays(n);<br /> if (Today &gt;= WriteDate)<br /> return false;<br /> else<br /> return true;<br /> }<br /><br /> <br /><br />示例代码：<br /><br />&lt;table width="100%" border="1" cellspacing="0" cellpadding="0"&gt;<br /><br />&lt;tr&gt;<br /><br />&lt;td&gt;TimeSpan('T','2002-10-1','2002-1-1')&lt;/td&gt;<br /><br />&lt;td&gt;&amp;nbsp;&lt;!-- NoahValue ValueName="TimeSpan('T','2002-10-1','2002-1-1')" --&gt;&lt;/td&gt;<br /><br />&lt;/tr&gt;<br /><br />&lt;tr&gt;<br /><br />&lt;td&gt;TimeSpan('d','2002-10-1','2002-1-1')&lt;/td&gt;<br /><br />&lt;td&gt;&amp;nbsp;&lt;!-- NoahValue ValueName="TimeSpan('d','2002-10-1','2002-1-1')" --&gt;&lt;/td&gt;<br /><br />&lt;/tr&gt;<br /><br />&lt;tr&gt;<br /><br />&lt;td&gt;TimeSpan('h','2002-10-1','2002-1-1')&lt;/td&gt;<br /><br />&lt;td&gt;&amp;nbsp;&lt;!-- NoahValue ValueName="TimeSpan('h','2002-10-1','2002-1-1')" --&gt;&lt;/td&gt;<br /><br />&lt;/tr&gt;<br /><br />&lt;tr&gt;<br /><br />&lt;td&gt;TimeSpan('u','2002-10-1','2002-1-1')&lt;/td&gt;<br /><br />&lt;td&gt;&amp;nbsp;&lt;!-- NoahValue ValueName="TimeSpan('u','2002-10-1','2002-1-1')" --&gt;&lt;/td&gt;<br /><br />&lt;/tr&gt;<br /><br />&lt;tr&gt;<br /><br />&lt;td&gt;TimeSpan('m','2002-10-1','2002-1-1')&lt;/td&gt;<br /><br />&lt;td&gt;&amp;nbsp;&lt;!-- NoahValue ValueName="TimeSpan('m','2002-10-1','2002-1-1')" --&gt;&lt;/td&gt;<br /><br />&lt;/tr&gt;<br /><br />&lt;tr&gt;<br /><br />&lt;td&gt;TimeSpan('s','2002-10-1','2002-1-1')&lt;/td&gt;<br /><br />&lt;td&gt;&amp;nbsp;&lt;!-- NoahValue ValueName="TimeSpan('s','2002-10-1','2002-1-1')" --&gt;&lt;/td&gt;<br /><br />&lt;/tr&gt;<br /><br />&lt;tr&gt;<br /><br />&lt;td&gt;TimeSpan('D','2002-10-1','2002-1-1')&lt;/td&gt;(责任编辑：麦田守望者)</p><p><br /></p><p><br /></p><p>在定义Date数据类型时候，必须注意下面三点：<br /><br />1. Date数值必须以数字符号"#"括起来。<br /><br />2. Date数值中的日期数据可有可无，如果有必须符合格式"m/d/yyyy"。<br /><br />3. Date数值中的时间数据可有可无，如果有必须和日期数据通过空格分开，并且时分秒之间以":"分开。<br /><br />一．DateTime和TimeSpan的关系和区别：<br /><br />DateTime和TimeSpan是Visual Basic .Net中用以处理时间日期类型数据的二个主要的结构，这二者的区别在于，DatTime表示一个固定的时间，而TimeSpan表示的是一个时间间隔， 即一段时间。在下面介绍的程序示例中，TimeSpan就用以当前时间和给定时间之差。<br /><br />二．DateTime和TimeSpan中的常用成员及其说明：<br /><br />DateTime结构和TimeSpan结构提供了丰富的方法和属性，通过这些方法和属性，几乎可以直接处理任何时间日期类型数据。表01和表02分别是DateTime结构的常用属性和常用方法及其说明：<br />属性	说明<br />Date	获取此实例的日期部分。<br />Day	获取此实例所表示的日期为该月中的第几天。<br />DayOfWeek	获取此实例所表示的日期是星期几。<br />DayOfYear	获取此实例所表示的日期是该年中的第几天。<br />Hour	获取此实例所表示日期的小时部分。<br />Millisecond	获取此实例所表示日期的毫秒部分。<br />Minute	获取此实例所表示日期的分钟部分。<br />Month	获取此实例所表示日期的月份部分。<br />Now	创建一个DateTime实例，它是此计算机上的当前本地日期和时间。<br />Second	获取此实例所表示日期的秒部分。<br />TimeOfDay	获取此实例的当天的时间。<br />Today	获取当前日期。<br />Year	获取此实例所表示日期的年份部分。<br /><br />表01：DateTime类的常用属性及其说明<br />方法	说明<br />Add	将指定的TimeSpan的值加到此实例的值上。<br />AddDays	将指定的天数加到此实例的值上。<br />AddHours	将指定的小时数加到此实例的值上。<br />AddMilliseconds	将指定的毫秒数加到此实例的值上。<br />AddMinutes	将指定的分钟数加到此实例的值上。<br />AddMonths	将指定的月份数加到此实例的值上。<br />AddSeconds	将指定的秒数加到此实例的值上。<br />AddYears	将指定的年份数加到此实例的值上。<br />DaysInMonth	返回指定年份中指定月份的天数。<br />IsLeapYear	返回指定的年份是否为闰年的指示。<br />Parse	将日期和时间的指定字符串表示转换成其等效的DateTime实例。<br />Subtract	从此实例中减去指定的时间或持续时间。<br />ToLongDateString	将此实例的值转换为其等效的长日期字符串表示形式。<br />ToLongTimeString	将此实例的值转换为其等效的长时间字符串表示形式。<br />ToShortTimeString	将此实例的值转换为其等效的短时间字符串表示形式。<br />ToShortDateString	将此实例的值转换为其等效的短日期字符串表示形式。<br /><br /><br />表02：DateTime结构的常用方法及其说明<br /><br />表03和表04分别是TimeSpan结构的常用属性和常用方法及其说明：<br />属性	说明<br />Days	获取由此实例表示的整天数。<br />Hours	获取由此实例表示的整小时数。<br />Milliseconds	获取由此实例表示的整毫秒数。<br />Minutes	获取由此实例表示的整分钟数。<br />Seconds	获取由此实例表示的整秒数。<br />Ticks	获取用刻度表示的此实例的值。<br />TotalDays	获取以整天数和天的小数部分表示的此实例的值。<br />TotalHours	获取以整小时数和小时的小数部分表示的此实例的值。<br />TotalMilliseconds	获取以整毫秒数和毫秒的小数部分表示的此实例的值。<br />TotalMinutes	获取以整分钟数和分钟的小数部分表示的此实例的值。<br />TotalSeconds	获取以整秒数和秒的小数部分表示的此实例的值。<br /><br />表03：TimeSpan结构的常用属性及其说明<br />方法	说明<br />Add	将指定的TimeSpan添加到此实例中。<br />Duration	返回其值为此实例的绝对值的TimeSpan。<br />FromDays	返回表示指定天数的TimeSpan，其中对天数的指定精确到最接近的毫秒。<br />FromHours	返回表示指定小时数的TimeSpan，其中对小时数的指定精确到最接近的毫秒。<br />FromMilliseconds	返回表示指定毫秒数的TimeSpan。<br />FromMinutes	返回表示指定分钟数的TimeSpan，其中对分钟数的指定精确到最接近的毫秒。<br />FromSeconds	返回表示指定秒数的TimeSpan，其中对秒数的指定精确到最接近的毫秒。<br />Subtract	从此实例中减去指定的TimeSpan。<br /><br />表04：TimeSpan结构的常用方法及其说明</p>
 
<img src ="http://www.blogjava.net/AndyZhang/aggbug/377157.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AndyZhang/" target="_blank">SkyDream</a> 2012-05-02 12:33 <a href="http://www.blogjava.net/AndyZhang/archive/2012/05/02/377157.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>为工具栏添加鼠标的“按下、移动、松开”三个事件，用来移动窗体</title><link>http://www.blogjava.net/AndyZhang/archive/2012/04/27/376782.html</link><dc:creator>SkyDream</dc:creator><author>SkyDream</author><pubDate>Fri, 27 Apr 2012 08:50:00 GMT</pubDate><guid>http://www.blogjava.net/AndyZhang/archive/2012/04/27/376782.html</guid><description><![CDATA[<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private bool isMouseDown = false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private Point FormLocation;&nbsp;&nbsp;&nbsp;&nbsp; //form的location<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private Point mouseOffset;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //鼠标的按下位置<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void toolStrip1_MouseDown(object sender, MouseEventArgs e)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (e.Button == MouseButtons.Left)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isMouseDown = true;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FormLocation = this.Location;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mouseOffset = Control.MousePosition;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void toolStrip1_MouseUp(object sender, MouseEventArgs e)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isMouseDown = false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void toolStrip1_MouseMove(object sender, MouseEventArgs e)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int _x = 0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int _y = 0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (isMouseDown)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Point pt = Control.MousePosition;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _x = mouseOffset.X - pt.X;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _y = mouseOffset.Y - pt.Y;</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Location = new Point(FormLocation.X - _x, FormLocation.Y - _y);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br /></font></p><img src ="http://www.blogjava.net/AndyZhang/aggbug/376782.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AndyZhang/" target="_blank">SkyDream</a> 2012-04-27 16:50 <a href="http://www.blogjava.net/AndyZhang/archive/2012/04/27/376782.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用split（）截取字符串</title><link>http://www.blogjava.net/AndyZhang/archive/2012/04/25/376616.html</link><dc:creator>SkyDream</dc:creator><author>SkyDream</author><pubDate>Wed, 25 Apr 2012 09:31:00 GMT</pubDate><guid>http://www.blogjava.net/AndyZhang/archive/2012/04/25/376616.html</guid><description><![CDATA[
<div class="dp-highlighter">
<div class="bar">
<div class="tools">
<div class="dp-highlighter"><div class="bar"><div class="tools">C#代码 &nbsp;<a title="收藏这段代码" href="javascript:void()"><img class="spinner" style="display: none" src="http://heisetoufa.iteye.com/images/spinner.gif" alt="" /></a></div></div></div><div class="dp-highlighter">
<ol class="dp-c"><li><span class="keyword">string</span><span>&nbsp;s&nbsp;=&nbsp;</span><span class="string">"123a223a456a63223sa"</span><span>; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">string</span><span>[]&nbsp;sArray&nbsp;=&nbsp;s.Split(</span><span class="string">'a'</span><span>); &nbsp; </span><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span> &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox.Show(sArray[0]); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox.Show(sArray[1]); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox.Show(sArray[2]); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox.Show(sArray[3]);&nbsp;&nbsp;</span></li></ol></div><pre class="c#" title="c#,winform，split截取字符串,截串" style="display: none" pre_index="1" source_url="http://heisetoufa.iteye.com/blog/227761" codeable_type="Blog" codeable_id="227761" name="code">string s = "123a223a456a63223sa";
                        string[] sArray = s.Split('a');
                        int j = 0;
                        MessageBox.Show(sArray[0]);
                        MessageBox.Show(sArray[1]);
                        MessageBox.Show(sArray[2]);
                        MessageBox.Show(sArray[3]);

</pre>
<p>&nbsp;这样结果也是</p>
<p>123</p>
<p>223</p>
<p>456</p>
<p>63223s</p>
<p>C#中使用split分割字符串的几种方法</p>
<p><strong>第一种方法：<br /></strong></p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools">C#代码 &nbsp;<a title="收藏这段代码" href="javascript:void()"><img class="spinner" style="display: none" src="http://heisetoufa.iteye.com/images/spinner.gif" alt="" /></a></div></div>
<ol class="dp-c"><li><span class="keyword">string</span><span>&nbsp;s=abcdeabcdeabcde; &nbsp;&nbsp;</span></li><li><span class="keyword">string</span><span>[]&nbsp;sArray=s.Split(c)&nbsp;; &nbsp;&nbsp;</span></li><li><span class="keyword">foreach</span><span>(</span><span class="keyword">string</span><span>&nbsp;i&nbsp;</span><span class="keyword">in</span><span>&nbsp;sArray) &nbsp;&nbsp;</span></li><li><span>Console.WriteLine(i.ToString());&nbsp;&nbsp;</span></li></ol></div><pre class="c#" title="c#,winform，split截取字符串,截串" style="display: none" pre_index="2" source_url="http://heisetoufa.iteye.com/blog/227761" codeable_type="Blog" codeable_id="227761" name="code">string s=abcdeabcdeabcde;
string[] sArray=s.Split(c) ;
foreach(string i in sArray)
Console.WriteLine(i.ToString());</pre>
<p>&nbsp;<br />输出下面的结果:<br />ab<br />deab<br />deab<br />de</p>
<p><strong>第二种方法：</strong><br />我们看到了结果是以一个指定的字符进行的分割。使用另一种构造方法对多个字符进行分割:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools">C#代码 &nbsp;<a title="收藏这段代码" href="javascript:void()"><img class="spinner" style="display: none" src="http://heisetoufa.iteye.com/images/spinner.gif" alt="" /></a></div></div>
<ol class="dp-c"><li><span class="keyword">string</span><span>&nbsp;s=abcdeabcdeabcde &nbsp;&nbsp;</span></li><li><span class="keyword">string</span><span>[]&nbsp;sArray1=s.Split(</span><span class="keyword">new</span><span>&nbsp;</span><span class="keyword">char</span><span>[3]{c,d,e})&nbsp;; &nbsp;&nbsp;</span></li><li><span class="keyword">foreach</span><span>(</span><span class="keyword">string</span><span>&nbsp;i&nbsp;</span><span class="keyword">in</span><span>&nbsp;sArray1) &nbsp;&nbsp;</span></li><li><span>Console.WriteLine(i.ToString());&nbsp;&nbsp;</span></li></ol></div><pre class="c#" title="c#,winform，split截取字符串,截串" style="display: none" pre_index="3" source_url="http://heisetoufa.iteye.com/blog/227761" codeable_type="Blog" codeable_id="227761" name="code">string s=abcdeabcdeabcde
string[] sArray1=s.Split(new char[3]{c,d,e}) ;
foreach(string i in sArray1)
Console.WriteLine(i.ToString());
</pre>
<p>&nbsp;可以输出下面的结果：<br />ab<br />ab<br />ab</p>
<p><strong>第三种方法：<br /></strong>除了以上的这两种方法以外,第三种方法是使用正则表达式。新建一个控制台项目。<span style="color: #0000ff">然后先添加 using </span></p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools">C#代码 &nbsp;<a title="收藏这段代码" href="javascript:void()"><img class="spinner" style="display: none" src="http://heisetoufa.iteye.com/images/spinner.gif" alt="" /></a></div></div>
<ol class="dp-c"><li><span>System.Text.RegularExpressions; &nbsp;&nbsp;</span></li><li><span class="keyword">string</span><span>&nbsp;content=agcsmallmacsmallgggsmallytx;&nbsp; &nbsp;&nbsp;</span></li><li><span class="keyword">string</span><span>[]resultString=Regex.Split(content,small,RegexOptions.IgnoreCase)&nbsp; &nbsp;&nbsp;</span></li><li><span class="keyword">foreach</span><span>(</span><span class="keyword">string</span><span>&nbsp;i&nbsp;</span><span class="keyword">in</span><span>&nbsp;resultString) &nbsp;&nbsp;</span></li><li><span>Console.WriteLine(i.ToString());</span></li><li><span>//regexOptions.IgnoreCase是不区分small在字符串content中的大小写 &nbsp;</span></li></ol></div>
<p>
</p><p>输出下面的结果:<br />agc<br />mac<br />ggg<br />ytx</p>
<p><strong>第四种方法：<br /></strong></p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools">C#代码 &nbsp;<a title="收藏这段代码" href="javascript:void()"><img class="spinner" style="display: none" src="http://heisetoufa.iteye.com/images/spinner.gif" alt="" /></a></div></div>
<ol class="dp-c"><li><span class="keyword">string</span><span>&nbsp;str1=我*****是*****一*****个*****教*****师; &nbsp;&nbsp;</span></li><li><span class="keyword">string</span><span>[]&nbsp;str2; &nbsp;&nbsp;</span></li><li><span>str1=str1.Replace(*****,*)&nbsp;; &nbsp;&nbsp;</span></li><li><span>str2=str1.Split(*)&nbsp;; &nbsp;&nbsp;</span></li><li><span class="keyword">foreach</span><span>(</span><span class="keyword">string</span><span>&nbsp;i&nbsp;</span><span class="keyword">in</span><span>&nbsp;str2) &nbsp;&nbsp;</span></li><li><span>Console.WriteLine(i.ToString());&nbsp;&nbsp;</span></li></ol></div><pre class="c#" title="c#,winform，split截取字符串,截串" style="display: none" pre_index="5" source_url="http://heisetoufa.iteye.com/blog/227761" codeable_type="Blog" codeable_id="227761" name="code">string str1=我*****是*****一*****个*****教*****师;
string[] str2;
str1=str1.Replace(*****,*) ;
str2=str1.Split(*) ;
foreach(string i in str2)
Console.WriteLine(i.ToString());
</pre>
<p>&nbsp;<strong>第五种方法：</strong><br />string str1=我**是*****一*****个*****教*****师;<br />我希望显示的结果为:我是一个教师。<br />我如果采用上面的第四种方法来做就会产生下面的错误：我&nbsp;&nbsp; 是一个教师。中间有空格输出，所以输出结果并不是希望的结果，这就又回到了正则表达式了，这时可以采用下面的第五种方法：</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools">C#代码 &nbsp;<a title="收藏这段代码" href="javascript:void()"><img class="spinner" style="display: none" src="http://heisetoufa.iteye.com/images/spinner.gif" alt="" /></a></div></div>
<ol class="dp-c"><li><span class="keyword">string</span><span>&nbsp;str1=我**是*****一*****个*****教*****师; &nbsp;&nbsp;</span></li><li><span class="keyword">string</span><span>[]&nbsp;str2&nbsp;=&nbsp;System.Text.RegularExpressions.Regex.Split(str1,@[*]+);&nbsp; &nbsp;&nbsp;</span></li><li><span class="keyword">foreach</span><span>(</span><span class="keyword">string</span><span>&nbsp;i&nbsp;</span><span class="keyword">in</span><span>&nbsp;str2) &nbsp;&nbsp;</span></li><li><span>Console.WriteLine(i.ToString());&nbsp;&nbsp;&nbsp;</span></li></ol></div><pre class="c#" title="c#,winform，split截取字符串,截串" style="display: none" pre_index="6" source_url="http://heisetoufa.iteye.com/blog/227761" codeable_type="Blog" codeable_id="227761" name="code">string str1=我**是*****一*****个*****教*****师;
string[] str2 = System.Text.RegularExpressions.Regex.Split(str1,@[*]+); 
foreach(string i in str2)
Console.WriteLine(i.ToString()); 
</pre>
<p>&nbsp;这里通过[*]+ 巧妙的完成了我们的目标。<br /><br /></p>
<p style="font-size: 10pt"><span style="color: #0000ff">例如我想取得一个ftp里的用户名及密码（服务器等）值（用IE当FTP时或从表中取出FTP的值）。</span><br /><span style="color: #0000ff">下面是我的解决思路：</span><br /><span style="color: #0000ff">设url为收到的URL值，这里指：url=ftp://username:password@server，请注意这句话的规律</span><br /><span style="color: #0000ff">我想大家都看清楚这个URL里的规律了吧，就是各个部分都被":"给区分成三个部分，即：ftp、//username、</span><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#112;&#97;&#115;&#115;&#119;&#111;&#114;&#100;&#64;&#115;&#101;&#114;&#118;&#101;&#114;"><span style="color: #0000ff">password@server</span></a><br /><span style="color: #0000ff">首先将这个URL的各个部分区分开来，用split(url, ":")</span><br /><span style="color: #0000ff">以下是具体的代码：</span></p>
<p style="font-size: 10pt"><span style="color: #0000ff">parts = split(url, ":")&nbsp;&nbsp; '此时parts就有三部分，parts(0)=ftp，parts(1)=//username，parts(2)=password@server'接下来剔除没有用到的信息'由于只取username，所以其中parts(0)跟parts(2)是无用的，直接不引用！newname=replace(parts(1), "//", "")&nbsp;&nbsp; '去除//符号，因为这不是username里的内容'此时的newname既为用户名。</span></p>
<p style="font-size: 10pt"><br /><span style="color: #0000ff">以上是只取用户名的代码，如果你要再取密码的话，可以参考下面。</span></p>
<p style="font-size: 10pt"><span style="color: #0000ff">'由于用户名是属于parts(2)里的，而且包含服务器的信息，如果不取服务器，则：newpass = left(parts(2), instr(parts(2),"@")-1)&nbsp; '取值到@之前的位数。此时的newpass取为密码</span></p>
<p style="font-size: 10pt"><br /><span style="color: #0000ff">以上代码为不取服务器地址的代码，如果有取服务器的话，其实也是很简单的</span></p>
<p style="font-size: 10pt"><span style="color: #0000ff">newparts=split(parts(2),"@")&nbsp; '此时newparts分成两部分：newparts(0)为密码，即password；newparts(1)则为服务器地址，即server'如果要输出密码的的话，直接response.write newparts(0)就可以了，服务器就newparts(1)</span></p>
<p style="font-size: 10pt"><br /><span style="color: #0000ff">后话，对于要取一字符串中的某些字符或部分，只要抓住规律，再加上用split就可以很好做成各种效果。</span></p>
</div></div></div>
<p>&nbsp;</p> 
<img src ="http://www.blogjava.net/AndyZhang/aggbug/376616.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AndyZhang/" target="_blank">SkyDream</a> 2012-04-25 17:31 <a href="http://www.blogjava.net/AndyZhang/archive/2012/04/25/376616.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>c#中字符串截取使用的方法</title><link>http://www.blogjava.net/AndyZhang/archive/2012/04/25/376614.html</link><dc:creator>SkyDream</dc:creator><author>SkyDream</author><pubDate>Wed, 25 Apr 2012 09:19:00 GMT</pubDate><guid>http://www.blogjava.net/AndyZhang/archive/2012/04/25/376614.html</guid><description><![CDATA[
<div id="cnblogs_post_body"><span style="color: #ff0000" color="#ff0000">String substring(int beginIndex)&nbsp;<br />String substring(int beginIndex, int endIndex)&nbsp;</span><br /><span style="color: #ff0000" color="#ff0000">String.Substring (Int32)</span> &nbsp; &nbsp; &nbsp; &nbsp; 子字符串从指定的字符位置开始。&nbsp;<br /><span style="color: #ff0000" color="#ff0000">String.Substring (Int32, Int32)</span> 子字符串从指定的字符位置开始且具有指定的长度。<br /><strong>举例如下：</strong><span style="color: #ff0000" color="#ff0000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string s = "Hello C# World!";</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //s1为从s中截取的位置为3的字符以后的字符子串,3表示子字符串的起始字符位置<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #ff0000" color="#ff0000">string s1=s.Substring(3);</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //s2为从s中截取的位置为6的字符开始长度为2的字符串，6表示子字符的起始字符位置，2表示子字符长度<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #ff0000" color="#ff0000">string s2 = s.Substring(6, 2);</span><br />结果如下：<br /><span style="color: #ff0000" color="#ff0000">lo C# World!</span><br /><span style="color: #ff0000" color="#ff0000">C#</span></div><div><br /></div><div>int indexOf(String str) 返回第一次出现的指定子字符串在此字符串中的索引。<br />int indexOf(String str, int fromIndex) 从指定的索引处开始，返回第一次出现的指定子字符串在此字符串中的索引。</div><div>int lastIndexOf(String str) 返回在此字符串中最右边出现的指定子字符串的索引。&nbsp;<br />int lastIndexOf(String str, int fromIndex) 从指定的索引处开始向后搜索，返回在此字符串中最后一次出现的指定子字符串的索引。&nbsp;<br />int length() 返回此字符串的长度。</div><div>boolean startsWith(String prefix) 测试此字符串是否以指定的前缀开始。&nbsp;<br />boolean startsWith(String prefix, int toffset) 测试此字符串是否以指定前缀开始，该前缀以指定索引开始。<br />例如：<br />&nbsp;	　string &nbsp;str=	"C:\\Documents and Settings\\Administrator\\桌面\\new1.jpg"&nbsp;<br />str.Substring(0,str.LastIndexOf("\\")+1)+"new"+str.Substring(str.LastIndexOf("\\")+1,<br />&nbsp;               str.LastIndexOf(".")-str.LastIndexOf("\\")-1)+str.Substring(str.LastIndexOf("."),str.Length-str.LastIndexOf(".")<br /></div><div><br /></div><div>&nbsp;str.LastIndexOf("\\")&#8212;&#8212;得到最后一个&#8220;\\&#8221;的索引值&nbsp;</div><div>&nbsp;str.Substring(0,str.LastIndexOf("\\")+1)&#8212;&#8212;得到&nbsp;
C:\\Documents and Settings\\Administrator\\桌面\\
</div><div>&nbsp;str.Substring(str.LastIndexOf("\\")+1,str.LastIndexOf(".")-str.LastIndexOf("\\")-1)&nbsp; &#8212;&#8212;得到
new1
</div><div>
str.Substring(str.LastIndexOf("."),str.Length-str.LastIndexOf(".")
&#8212;&#8212;得到
.jpg



</div> 
<img src ="http://www.blogjava.net/AndyZhang/aggbug/376614.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AndyZhang/" target="_blank">SkyDream</a> 2012-04-25 17:19 <a href="http://www.blogjava.net/AndyZhang/archive/2012/04/25/376614.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C# 计算文件的MD5(值信息摘要算法)</title><link>http://www.blogjava.net/AndyZhang/archive/2012/04/23/376399.html</link><dc:creator>SkyDream</dc:creator><author>SkyDream</author><pubDate>Mon, 23 Apr 2012 09:40:00 GMT</pubDate><guid>http://www.blogjava.net/AndyZhang/archive/2012/04/23/376399.html</guid><description><![CDATA[<p style="margin: 5px auto; word-spacing: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><font face="Verdana">MD5 是 Message Digest Algorithm 5（信息摘要算法）的缩写，MD5 一种散列(Hash)技术，广泛用于加密、解密、数据签名和数据完整性校验等方面。任何一个文件，无论是可执行程序、图像文件、临时文件或者其他任何类型的文件，也不管它体积多大，都可以计算出一个MD5值，如果文件被修改过，就算只改动了一个字节，其 MD5 值也会变得完全不同。因此，我们可以通过对比同一文件的 MD5 值，来校验这个文件是否被&#8220;篡改&#8221;过。</font></p><span style="display: inline! important; float: none; word-spacing: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">C# 可以方便的计算出文件的 MD5 值：</span> 
<div class="cnblogs_code" style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 5px; padding-bottom: 5px; margin: 5px 0px; word-spacing: 0px; font: 12px/19px 'Courier New'; overflow: auto; text-transform: none; border-left: rgb(204,204,204) 1px solid; color: rgb(0,0,0); word-break: break-all; text-indent: 0px; padding-top: 5px; border-bottom: rgb(204,204,204) 1px solid; white-space: normal; letter-spacing: normal; background-color: rgb(245,245,245); orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><img id="Code_Open_Image_174933" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_174933').style.display='none'; getElementById('Code_Closed_Image_174933').style.display='inline'; getElementById('Code_Closed_Text_174933').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"><span id="Code_Open_Text_174933" style="display: inline; font-size: 12px; line-height: 1.5; font-family: 'Courier New'"><br /><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">///</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;summary&gt;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'"><br /></span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">///</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;计算文件的&nbsp;MD5&nbsp;值<br /></span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">///</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;/summary&gt;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'"><br /></span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">///</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;param&nbsp;name="fileName"&gt;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">要计算&nbsp;MD5&nbsp;值的文件名和路径</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;/param&gt;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'"><br /></span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">///</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;returns&gt;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">MD5&nbsp;值16进制字符串</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;/returns&gt;</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'"><br /></span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">public</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">static</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">string</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;MD5File(</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">string</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;fileName)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">return</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;HashFile(fileName,&nbsp;</span><span style="font-size: 12px; color: rgb(128,0,0); line-height: 1.5; font-family: 'Courier New'">"</span><span style="font-size: 12px; color: rgb(128,0,0); line-height: 1.5; font-family: 'Courier New'">md5</span><span style="font-size: 12px; color: rgb(128,0,0); line-height: 1.5; font-family: 'Courier New'">"</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">);<br />}<br /><br /></span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">///</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;summary&gt;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'"><br /></span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">///</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;计算文件的哈希值<br /></span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">///</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;/summary&gt;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'"><br /></span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">///</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;param&nbsp;name="fileName"&gt;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">要计算哈希值的文件名和路径</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;/param&gt;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'"><br /></span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">///</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;param&nbsp;name="algName"&gt;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">算法:sha1,md5</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;/param&gt;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'"><br /></span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">///</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;returns&gt;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">哈希值16进制字符串</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;/returns&gt;</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'"><br /></span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">public</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">static</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">string</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;HashFile(</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">string</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;fileName,&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">string</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;algName)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">if</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;(</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">!</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">System.IO.File.Exists(fileName))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">return</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">string</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">.Empty;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;FileStream&nbsp;fs&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">=</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">new</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;FileStream(fileName,&nbsp;FileMode.Open,&nbsp;FileAccess.Read);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">byte</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">[]&nbsp;hashBytes&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">=</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;HashData(fs,&nbsp;algName);<br />&nbsp;&nbsp;&nbsp;&nbsp;fs.Close();<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">return</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;ByteArrayToHexString(hashBytes);<br />}<br /><br /></span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">///</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;summary&gt;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'"><br /></span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">///</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;计算哈希值<br /></span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">///</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;/summary&gt;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'"><br /></span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">///</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;param&nbsp;name="stream"&gt;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">要计算哈希值的&nbsp;Stream</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;/param&gt;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'"><br /></span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">///</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;param&nbsp;name="algName"&gt;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">算法:sha1,md5</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;/param&gt;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'"><br /></span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">///</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;returns&gt;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">哈希值字节数组</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;/returns&gt;</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'"><br /></span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">public</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">static</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">byte</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">[]&nbsp;HashData(Stream&nbsp;stream,&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">string</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;algName)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;HashAlgorithm&nbsp;algorithm;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">if</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;(algName&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">==</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">null</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">throw</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">new</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;ArgumentNullException(</span><span style="font-size: 12px; color: rgb(128,0,0); line-height: 1.5; font-family: 'Courier New'">"</span><span style="font-size: 12px; color: rgb(128,0,0); line-height: 1.5; font-family: 'Courier New'">algName&nbsp;不能为&nbsp;null</span><span style="font-size: 12px; color: rgb(128,0,0); line-height: 1.5; font-family: 'Courier New'">"</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">if</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;(</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">string</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">.Compare(algName,&nbsp;</span><span style="font-size: 12px; color: rgb(128,0,0); line-height: 1.5; font-family: 'Courier New'">"</span><span style="font-size: 12px; color: rgb(128,0,0); line-height: 1.5; font-family: 'Courier New'">sha1</span><span style="font-size: 12px; color: rgb(128,0,0); line-height: 1.5; font-family: 'Courier New'">"</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">,&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">true</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">)&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">==</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(128,0,128); line-height: 1.5; font-family: 'Courier New'">0</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;algorithm&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">=</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;SHA1.Create();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">else</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'"><br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">if</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;(</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">string</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">.Compare(algName,&nbsp;</span><span style="font-size: 12px; color: rgb(128,0,0); line-height: 1.5; font-family: 'Courier New'">"</span><span style="font-size: 12px; color: rgb(128,0,0); line-height: 1.5; font-family: 'Courier New'">md5</span><span style="font-size: 12px; color: rgb(128,0,0); line-height: 1.5; font-family: 'Courier New'">"</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">,&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">true</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">)&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">!=</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(128,0,128); line-height: 1.5; font-family: 'Courier New'">0</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">throw</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">new</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;Exception(</span><span style="font-size: 12px; color: rgb(128,0,0); line-height: 1.5; font-family: 'Courier New'">"</span><span style="font-size: 12px; color: rgb(128,0,0); line-height: 1.5; font-family: 'Courier New'">algName&nbsp;只能使用&nbsp;sha1&nbsp;或&nbsp;md5</span><span style="font-size: 12px; color: rgb(128,0,0); line-height: 1.5; font-family: 'Courier New'">"</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;algorithm&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">=</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;MD5.Create();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">return</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;algorithm.ComputeHash(stream);<br />}</span></span></div>
<p style="margin: 5px auto; word-spacing: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><font face="Verdana">&nbsp;&nbsp;&nbsp; ComputeHash 方法返回的是<font face="Verdana">哈希值字节数组，而文件的 MD5 值通常是用16进制的字符串表示，<font face="Verdana">字节数组转换为16进制表示的字符串</font>的方法在<font face="Verdana"><span class="Apple-converted-space">&nbsp;</span>System.Web.Configuration.MachineKeySection</font><span class="Apple-converted-space">&nbsp;</span>中已经提供了一个名为<span class="Apple-converted-space">&nbsp;</span><font face="Verdana">ByteArrayToHexString</font><span class="Apple-converted-space">&nbsp;</span>方法，但是该方法是<font face="Verdana">NonPublic 的，我们不能直接调用。这里我们<font face="Verdana">通过反射来调用 MachineKeySection 中的 ByteArrayToHexString 方法。</font></font></font></font></p><span style="display: inline! important; float: none; word-spacing: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">通过反射调用 MachineKeySection 中的 ByteArrayToHexString 方法：</span> 
<div class="cnblogs_code" style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 5px; padding-bottom: 5px; margin: 5px 0px; word-spacing: 0px; font: 12px/19px 'Courier New'; overflow: auto; text-transform: none; border-left: rgb(204,204,204) 1px solid; color: rgb(0,0,0); word-break: break-all; text-indent: 0px; padding-top: 5px; border-bottom: rgb(204,204,204) 1px solid; white-space: normal; letter-spacing: normal; background-color: rgb(245,245,245); orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><img id="Code_Open_Image_185113" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_185113').style.display='none'; getElementById('Code_Closed_Image_185113').style.display='inline'; getElementById('Code_Closed_Text_185113').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"><span id="Code_Open_Text_185113" style="display: inline; font-size: 12px; line-height: 1.5; font-family: 'Courier New'"><br /><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">///</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;summary&gt;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'"><br /></span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">///</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;字节数组转换为16进制表示的字符串<br /></span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">///</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'">&lt;/summary&gt;</span><span style="font-size: 12px; color: rgb(128,128,128); line-height: 1.5; font-family: 'Courier New'"><br /></span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">public</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">static</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">string</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;ByteArrayToHexString(</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">byte</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">[]&nbsp;buf)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">int</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;iLen&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">=</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(128,0,128); line-height: 1.5; font-family: 'Courier New'">0</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">//</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;通过反射获取&nbsp;MachineKeySection&nbsp;中的&nbsp;ByteArrayToHexString&nbsp;方法，该方法用于将字节数组转换为16进制表示的字符串。</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'"><br /></span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;Type&nbsp;type&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">=</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">typeof</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">(System.Web.Configuration.MachineKeySection);<br />&nbsp;&nbsp;&nbsp;&nbsp;MethodInfo&nbsp;byteArrayToHexString&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">=</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;type.GetMethod(</span><span style="font-size: 12px; color: rgb(128,0,0); line-height: 1.5; font-family: 'Courier New'">"</span><span style="font-size: 12px; color: rgb(128,0,0); line-height: 1.5; font-family: 'Courier New'">ByteArrayToHexString</span><span style="font-size: 12px; color: rgb(128,0,0); line-height: 1.5; font-family: 'Courier New'">"</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">,&nbsp;BindingFlags.Static&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">|</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;BindingFlags.NonPublic);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">//</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;字节数组转换为16进制表示的字符串</span><span style="font-size: 12px; color: rgb(0,128,0); line-height: 1.5; font-family: 'Courier New'"><br /></span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">return</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;(</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">string</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">)byteArrayToHexString.Invoke(</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">null</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">,&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">new</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">&nbsp;</span><span style="font-size: 12px; color: rgb(0,0,255); line-height: 1.5; font-family: 'Courier New'">object</span><span style="font-size: 12px; color: rgb(0,0,0); line-height: 1.5; font-family: 'Courier New'">[]&nbsp;{&nbsp;buf,&nbsp;iLen&nbsp;});<br />}</span></span></div>
<p style="margin: 5px auto; word-spacing: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp; 如今&#8220;MD5碰撞生成器&#8221;的出现，使 MD5 也正在面临挑战。</p>
<p style="margin: 5px auto; word-spacing: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp; 顺便介绍一个 MD5 工具 Md5Checker，Md5Checker 是一款免费、快速、小巧、易用的文件 MD5 值计算、验证、管理软件。Md5Checker 的官方网站是：<font face="Verdana"><a style="color: rgb(0,102,170); text-decoration: none" href="http://cn.getmd5checker.com/">http://cn.getmd5checker.com/</a></font></p><img src ="http://www.blogjava.net/AndyZhang/aggbug/376399.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AndyZhang/" target="_blank">SkyDream</a> 2012-04-23 17:40 <a href="http://www.blogjava.net/AndyZhang/archive/2012/04/23/376399.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>winform怎么比较时间</title><link>http://www.blogjava.net/AndyZhang/archive/2012/04/23/376397.html</link><dc:creator>SkyDream</dc:creator><author>SkyDream</author><pubDate>Mon, 23 Apr 2012 09:30:00 GMT</pubDate><guid>http://www.blogjava.net/AndyZhang/archive/2012/04/23/376397.html</guid><description><![CDATA[<span style="display: inline! important; float: none; word-spacing: 0px; font: bold 15px/24px 微软雅黑; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(252,254,252); orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">winform时间比较。例如：当前时间超过早上8点就不可在打卡了。怎么比较的。</span><br /><pre class="reply-text mb10" id="content-846764126" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 10px; word-spacing: 0px; font: 14px/24px Arial; text-transform: none; color: rgb(0,0,0); text-indent: 0px; padding-top: 0px; zoom: 1; letter-spacing: normal; background-color: rgb(253,255,248); word-wrap: break-word; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">DateTime dt1 = DateTime.Now;
DateTime dt2 = Convert.ToDateTime(DateTime.Now.ToShortDateString() + " 08:00:00");
if (DateTime.Compare(dt1, dt2) &gt; 0)
{
    //dt1时间比dt2大
}
else if (DateTime.Compare(dt1, dt2) == 0)
{
    //TODO
}
else
{
    //TODO
}</pre>
<p>&nbsp;</p>
<p>&nbsp;</p><pre id="question-content" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; word-spacing: 0px; font: 14px/24px Arial; text-transform: none; color: rgb(0,0,0); text-indent: 0px; padding-top: 0px; zoom: 1; letter-spacing: normal; background-color: rgb(252,254,252); word-wrap: break-word; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">数据库里有个结束时间！ 我登录的时候要获取系统时间和 数据库里的时间做对比！没到结束时间 可以登录  到了就不可以登录  </pre>
<p>&nbsp;</p><pre class="reply-text mb10" id="best-answer-content" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 10px; word-spacing: 0px; font: 14px/22px Arial; text-transform: none; color: rgb(0,0,0); text-indent: 0px; padding-top: 0px; zoom: 1; letter-spacing: normal; background-color: rgb(255,252,246); word-wrap: break-word; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">winform里比较：
Datetime overTime = 获取数据库结束时间；
if(Datetime.Now &lt;= overTime)
{
登录；
}
else
{
无法登录；
}

数据库里比较(以mysql举例）：
select （now（） &lt; overTime);
其中now（）是系统函数当前时间，overtime的话你select一下你的结束时间，如果是确定值可以直接用'2012-12-21 00:00:00'这样的形式</pre><pre style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; word-spacing: 0px; font: 14px/24px Arial; text-transform: none; color: rgb(0,0,0); text-indent: 0px; padding-top: 0px; zoom: 1; letter-spacing: normal; background-color: rgb(255,252,246); word-wrap: break-word; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"> if (Convert.ToDateTime(tiems).CompareTo(Convert.ToDateTime(beoverdate)) &lt; 1)</pre>
<p>&nbsp;</p>
<p><span style="display: inline! important; float: none; word-spacing: 0px; font: bold 15px/24px 微软雅黑; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(252,254,252); orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">C# winform中怎么将时间转换成int类型的数字并且与一个数字进行比较？</span><br /></p><pre class="reply-text mb10" id="best-answer-content" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 10px; word-spacing: 0px; font: 14px/22px Arial; text-transform: none; color: rgb(0,0,0); text-indent: 0px; padding-top: 0px; zoom: 1; letter-spacing: normal; background-color: rgb(255,252,246); word-wrap: break-word; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">string num="1234560";
int a=int.Prase(num);
注意：num中只能出现数字且开头不为0，否则会出错 
如果是小数就用
string num1="3.1415926";
float bfloat.prase(num1);</pre>
<p>&nbsp;</p><pre class="reply-text mb10" id="content-708503592" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 10px; word-spacing: 0px; font: 14px/24px Arial; text-transform: none; color: rgb(0,0,0); text-indent: 0px; padding-top: 0px; zoom: 1; letter-spacing: normal; background-color: rgb(255,255,255); word-wrap: break-word; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">int.parse

convert.toint32 </pre><span style="display: inline! important; float: none; word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">将系统时间减去30天之后，格式化为数据库中时间的格式</span><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><span style="display: inline! important; float: none; word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">string dt = DateTime.Now.AddDays(-30).ToString("yyyy-MM-dd");</span><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><span style="display: inline! important; float: none; word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">select * from table where 数据库时间 &gt; '"+dt+"'</span><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><span style="display: inline! important; float: none; word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">如果能返回记录为0，说明已经超过30天<br /><br /><span style="display: inline! important; float: none; word-spacing: 0px; font: 12px/19px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">DateTime SystemTime = DateTime.Now;&nbsp; //获得系统时间</span><br style="word-spacing: 0px; font: 12px/19px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><span style="display: inline! important; float: none; word-spacing: 0px; font: 12px/19px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">string str = "2009-8-13 12:00:00";&nbsp; //str是数据库记录的时间</span><br style="word-spacing: 0px; font: 12px/19px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><span style="display: inline! important; float: none; word-spacing: 0px; font: 12px/19px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">DateTime DatabaseTime = DateTime.Parse(str);</span><br style="word-spacing: 0px; font: 12px/19px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><br style="word-spacing: 0px; font: 12px/19px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><span style="display: inline! important; float: none; word-spacing: 0px; font: 12px/19px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">TimeSpan ts = SystemTime.Subtract(DatabaseTime);&nbsp; //系统时间减去数据库时间</span><br style="word-spacing: 0px; font: 12px/19px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><br style="word-spacing: 0px; font: 12px/19px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><span style="display: inline! important; float: none; word-spacing: 0px; font: 12px/19px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">int i = ts.Days;&nbsp; //间隔的天数</span></span><img src ="http://www.blogjava.net/AndyZhang/aggbug/376397.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AndyZhang/" target="_blank">SkyDream</a> 2012-04-23 17:30 <a href="http://www.blogjava.net/AndyZhang/archive/2012/04/23/376397.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DateTimePicker控件如何按自定义的格式显示</title><link>http://www.blogjava.net/AndyZhang/archive/2012/04/23/376394.html</link><dc:creator>SkyDream</dc:creator><author>SkyDream</author><pubDate>Mon, 23 Apr 2012 09:10:00 GMT</pubDate><guid>http://www.blogjava.net/AndyZhang/archive/2012/04/23/376394.html</guid><description><![CDATA[<p>首先，DateTimePicker本身就提供很多常用的显示方式，比如2007年03月29日或 07-03-29 或 29/03/07 等等，可以在DateTimePicker的Format属性中设置。此外DateTimePicker也允许用户自定义显示形式，可以在DateTimePicker的CustomFormat设置。<br />但是为什么我在CustomFormat中设置好了输出形式，却没有效果呢。<br />原因可能有两个：<br />1，没有设置DateTimePicker 的 Format属性。必须先将Format设置成Custom，否则CustomFormat是无效的。<br />2，就是微软的bug了，每次设置DateTimePicker.Format = Custom;以后必须紧跟着设置CustomFormat = "your format";即使已经存在合法的自定义形式。<br /><font face="宋体" color="#333333">------解决方案--------------------------------------------------------<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; word-spacing: 0px; font: 14px/26px Simsun; text-transform: none; color: rgb(51,51,51); text-indent: 0px; padding-top: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /></font></p>
<dl class="code" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; word-spacing: 0px; font: 14px/26px Simsun; text-transform: none; color: rgb(51,51,51); text-indent: 0px; padding-top: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">C# code<pre style="padding-right: 0px; padding-left: 0px; font-size: small; padding-bottom: 0px; margin: 0px; color: black; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; background-color: rgb(255,255,255)">this.dateTimePicker1.Value.ToString("yyyy-MM-dd"); <br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; color: rgb(51,51,51); padding-top: 0px" /><font style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; color: rgb(51,51,51); padding-top: 0px" color="#e78608">------解决方案--------------------------------------------------------</font><br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; color: rgb(51,51,51); padding-top: 0px" />两句要同时使用:<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; color: rgb(51,51,51); padding-top: 0px" /><br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; color: rgb(51,51,51); padding-top: 0px" /><dl class="code" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; color: rgb(51,51,51); padding-top: 0px">C# code<pre style="padding-right: 0px; padding-left: 0px; font-size: small; padding-bottom: 0px; margin: 0px; color: black; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; background-color: rgb(255,255,255)"> <span style="color: #ff6600">dateTimePicker1.Format = DateTimePickerFormat.Custom; </span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: small; padding-bottom: 0px; margin: 0px; color: black; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; background-color: rgb(255,255,255)"><span style="color: #ff6600"> dateTimePicker1.CustomFormat = "yyyy-MM-dd"; </span></pre></dl></pre></dl>
<p><span class="keyword">custom</span><br /></p>
<ul sizset="0" sizcache0057521781218692614="13503"><li sizset="0" sizcache0057521781218692614="13295"><span class="def">n. 习惯；风俗；海关</span></li><li sizset="0" sizcache0057521781218692614="13503"><span class="def">adj. 定制的，定做的</span></li></ul>
<p>若是&nbsp;DateTime.Now.ToString("yyyy年MM月dd日 dddd hh:mm:ss")则显示为：****年**月**日　星期*　**：**：**<br class="Apple-interchange-newline" /><br /><br />日期的替代符号：<br />格式字串<br />&nbsp;說明<br />&nbsp;<br />d<br />&nbsp;一或二位數的日期。<br />&nbsp;<br />dd<br />&nbsp;二位數的日期。個位數日期值的前面會加上零。<br />&nbsp;<br />ddd<br />&nbsp;三個字元的星期縮寫。<br />&nbsp;<br />dddd<br />&nbsp;星期的完整名稱。<br />&nbsp;<br />h<br />&nbsp;12 小時制的一或二位數的小時。<br />&nbsp;<br />hh<br />&nbsp;12 小時制的二位數小時。個位數值前面會加上零。<br />&nbsp;<br />H<br />&nbsp;24 小時制的一或二位數的小時。<br />&nbsp;<br />HH<br />&nbsp;24 小時制的二位數小時。個位數值前面會加上零。<br />&nbsp;<br />m<br />&nbsp;一或二位數的分鐘。<br />&nbsp;<br />mm<br />&nbsp;二位數的分鐘。個位數值前面會加上零。<br />&nbsp;<br />M<br />&nbsp;一或二位數的月份。<br />&nbsp;<br />MM<br />&nbsp;二位數的月份。個位數值前面會加上零。<br />&nbsp;<br />MMM<br />&nbsp;三個字元的月份縮寫。<br />&nbsp;<br />MMMM<br />&nbsp;月份的完整名稱。<br />&nbsp;<br />s<br />&nbsp;一或二位數的秒數。<br />&nbsp;<br />ss<br />&nbsp;二位數的秒數。個位數值前面會加上零。<br />&nbsp;<br />t<br />&nbsp;A.M./P.M. 的單一字母縮寫 (A.M. 顯示為 "A")。<br />&nbsp;<br />tt<br />&nbsp;A.M./P.M. 的兩個字母縮寫 (A.M. 顯示為 "AM")。<br />&nbsp;<br />y<br />&nbsp;一位數的年份 (2001 顯示為 1)。<br />&nbsp;<br />yy<br />&nbsp;年份的末二位數 (2001 顯示為 01)。<br />&nbsp;<br />yyyy<br />&nbsp;完整的年份 (2001 顯示為 2001)。<br />&nbsp;</p><img src ="http://www.blogjava.net/AndyZhang/aggbug/376394.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AndyZhang/" target="_blank">SkyDream</a> 2012-04-23 17:10 <a href="http://www.blogjava.net/AndyZhang/archive/2012/04/23/376394.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>winform验证textbox只能输入数字或中文正则表达式</title><link>http://www.blogjava.net/AndyZhang/archive/2012/04/23/376384.html</link><dc:creator>SkyDream</dc:creator><author>SkyDream</author><pubDate>Mon, 23 Apr 2012 08:01:00 GMT</pubDate><guid>http://www.blogjava.net/AndyZhang/archive/2012/04/23/376384.html</guid><description><![CDATA[<h3 class="title pre fs1" style="word-spacing: 0px; text-transform: none; color: rgb(102,102,102); text-indent: 0px; line-height: normal; font-style: normal; font-family: Arial; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); font-variant: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span style="color: rgb(0,0,255); line-height: normal"><strong style="line-height: normal"><span style="color: rgb(51,102,255); line-height: normal">验证数字的正则表达式集</span></strong></span><span style="color: rgb(0,0,255); line-height: normal"><br style="line-height: normal" /></span>验证数字：^[0-9]*$<br style="line-height: normal" />验证n位的数字：^\d{n}$<br style="line-height: normal" />验证至少n位数字：^\d{n,}$<br style="line-height: normal" />验证m-n位的数字：^\d{m,n}$<br style="line-height: normal" />验证零和非零开头的数字：^(0|[1-9][0-9]*)$<br style="line-height: normal" />验证有两位小数的正实数：^[0-9]+(.[0-9]{2})?$<br style="line-height: normal" />验证有1-3位小数的正实数：^[0-9]+(.[0-9]{1,3})?$<br style="line-height: normal" />验证非零的正整数：^\+?[1-9][0-9]*$<br style="line-height: normal" />验证非零的负整数：^\-[1-9][0-9]*$<br style="line-height: normal" />验证非负整数（正整数 + 0）：^\d+$<br style="line-height: normal" />验证非正整数（负整数 + 0）： ^((-\d+)|(0+))$</h3>
<div class="bct fc05 fc11 nbw-blog ztag js-fs2" style="filter: none; visibility: visible! important; word-spacing: 0px; font: 12px Arial; text-transform: none; color: rgb(102,102,102); word-break: break-all; text-indent: 0px; zoom: 1! important; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); word-wrap: break-word; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">
<p style="line-height: normal"><strong style="line-height: normal"><span style="color: rgb(51,102,255); line-height: normal">验证中文的正则表达式集合</span></strong><br style="line-height: normal" />验证所有东亚区的语言：^[\?-\?]+$&nbsp;<br style="line-height: normal" />验证简体和繁体：^[\一-\?]+$<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />验证简体：^[\一-\龥]+$</p>
<p style="line-height: normal"><span style="color: rgb(51,102,255); line-height: normal"><strong style="line-height: normal">使用方法如下</strong></span><br style="line-height: normal" />使用Regex对象先引用System.Text.RegularExpressions<br style="line-height: normal" />string s="^[0-9]*$";//正则表达式<br style="line-height: normal" />Regex reg=new Regex(s);<br style="line-height: normal" />if(!reg.IsMatch(this.textbox1.text))<br style="line-height: normal" />{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br style="line-height: normal" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageBox.Show("请输入数字");<br style="line-height: normal" />}</p>
<p style="line-height: normal">&nbsp;</p>
<p style="line-height: normal">&nbsp;</p>
<p style="line-height: normal">各式各样的正则表达式参考大全（访问正则表达式实例库）：<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />^\d+$　　//匹配非负整数（正整数 + 0） 　<br style="line-height: normal" />//匹配整数 ^\d+(\.\d+)?$　　//匹配非负浮点数（正浮点数 + 0）<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$　　//匹配正浮点数<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />^((-\d+(\.\d+)?)|(0+(\.0+)?))$　　//匹配非正浮点数（负浮点数 + 0）<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$　　//匹配负浮点数<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />^(-?\d+)(\.\d+)?$　　//匹配浮点数<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />^[A-Za-z]+$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //匹配由26个英文字母组成的字符串<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />^[A-Z]+$　&nbsp;&nbsp;&nbsp; //匹配由26个英文字母的大写组成的字符串<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />^[a-z]+$　　//匹配由26个英文字母的小写组成的字符串<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />^[A-Za-z0-9]+$　　//匹配由数字和26个英文字母组成的字符串<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />^\w+$　　//匹配由数字、26个英文字母或者下划线组成的字符串<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$　　　　//匹配email地址<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$　　//匹配url<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />匹配中文字符的正则表达式： [\u4e00-\u9fa5]<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />匹配双字节字符(包括汉字在内)：[^\x00-\xff]<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />匹配空行的正则表达式：\n[\s| ]*\r<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />匹配HTML标记的正则表达式：/&lt;(.*)&gt;.*&lt;\/&gt;|&lt;(.*) \/&gt;/<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />匹配首尾空格的正则表达式：(^\s*)|(\s*$)<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />匹配网址URL的正则表达式：^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />匹配帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />匹配国内电话号码：(\d{3}-|\d{4}-)?(\d{8}|\d{7})?<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />匹配腾讯QQ号：^[1-9]*[1-9][0-9]*$</p>
<p style="line-height: normal">下表是元字符及其在正则表达式上下文中的行为的一个完整列表，具体到每个正则表达式符号：<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性，^ 也匹配 &#8217;\n&#8217; 或 &#8217;\r&#8217; 之后的位置。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />$ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性，$ 也匹配 &#8217;\n&#8217; 或 &#8217;\r&#8217; 之前的位置。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />* 匹配前面的子表达式零次或多次。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />+ 匹配前面的子表达式一次或多次。+ 等价于 {1,}。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />? 匹配前面的子表达式零次或一次。? 等价于 {0,1}。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />{n} n 是一个非负整数，匹配确定的n 次。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />{n,} n 是一个非负整数，至少匹配n 次。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />{n,m} m 和 n 均为非负整数，其中n &lt;= m。最少匹配 n 次且最多匹配 m 次。在逗号和两个数之间不能有空格。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时，匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串，而默认的贪婪模式则尽可能多的匹配所搜索的字符串。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />. 匹配除 "\n" 之外的任何单个字符。要匹配包括 &#8217;\n&#8217; 在内的任何字符，请使用象 &#8217;[.\n]&#8217; 的模式。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />(pattern) 匹配pattern 并获取这一匹配。 (?:pattern) 匹配pattern 但不获取匹配结果，也就是说这是一个非获取匹配，不进行存储供以后使用。 (?=pattern) 正向预查，在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配，也就是说，该匹配不需要获取供以后使用。 (?!pattern) 负向预查，与(?=pattern)作用相反 x|y 匹配 x 或 y。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />[xyz] 字符集合。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />[^xyz] 负值字符集合。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />[a-z] 字符范围，匹配指定范围内的任意字符。<br style="line-height: normal" />[^a-z] 负值字符范围，匹配任何不在指定范围内的任意字符。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />\b 匹配一个单词边界，也就是指单词和空格间的位置。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />\B 匹配非单词边界。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />\cx 匹配由x指明的控制字符。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />\d 匹配一个数字字符。等价于 [0-9]。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />\D 匹配一个非数字字符。等价于 [^0-9]。<br style="line-height: normal" />&nbsp;\f 匹配一个换页符。等价于 \x0c 和 \cL。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />\n 匹配一个换行符。等价于 \x0a 和 \cJ。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />\r 匹配一个回车符。等价于 \x0d 和 \cM。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />\s 匹配任何空白字符，包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />\t 匹配一个制表符。等价于 \x09 和 \cI。<br style="line-height: normal" />\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />\w 匹配包括下划线的任何单词字符。等价于&#8217;[A-Za-z0-9_]&#8217;。<br style="line-height: normal" />\W 匹配任何非单词字符。等价于 &#8217;[^A-Za-z0-9_]&#8217;。<br style="line-height: normal" />\xn 匹配 n，其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />\num 匹配 num，其中num是一个正整数。对所获取的匹配的引用。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />\n 标识一个八进制转义值或一个后向引用。如果 \n 之前至少 n 个获取的子表达式，则 n 为后向引用。否则，如果 n 为八进制数字 (0-7)，则 n 为一个八进制转义值。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />\nm 标识一个八进制转义值或一个后向引用。如果 \nm 之前至少有is preceded by at least nm 个获取得子表达式，则 nm 为后向引用。如果 \nm 之前至少有 n 个获取，则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足，若 n 和 m 均为八进制数字 (0-7)，则 \nm 将匹配八进制转义值 nm。 \nml 如果 n 为八进制数字 (0-3)，且 m 和 l 均为八进制数字 (0-7)，则匹配八.</p>
<p style="line-height: normal">--------------------------------------------------------------------------------</p>
<p style="line-height: normal">&nbsp;</p>
<p style="line-height: normal"><br style="line-height: normal" />if(document.getElementById("personalemail").value==null || document.getElementById("personalemail").value==""){<br style="line-height: normal" />&nbsp;&nbsp;&nbsp;&nbsp; alert("邮箱不能为空");<br style="line-height: normal" />&nbsp;&nbsp;&nbsp;&nbsp; return false;<br style="line-height: normal" />&nbsp;}else if(!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById("personalemail").value))){<br style="line-height: normal" />&nbsp;&nbsp;alert("请输入一个有效的邮件地址");<br style="line-height: normal" />&nbsp;&nbsp;document.getElementById("personalemail").value="";<br style="line-height: normal" />&nbsp;&nbsp;return false;<br style="line-height: normal" />&nbsp;}</p>
<p style="line-height: normal">&nbsp;&nbsp;&nbsp; var partten = /^1[3,5]\d{9}$/;<br style="line-height: normal" />&nbsp;if(document.getElementById("cellphone").value==null || document.getElementById("cellphone").value==""){<br style="line-height: normal" />&nbsp;&nbsp;&nbsp; alert("手机号码不能为空");<br style="line-height: normal" />&nbsp;&nbsp;&nbsp; document.getElementById("cellphone").focus();<br style="line-height: normal" />&nbsp;&nbsp;&nbsp; return false;<br style="line-height: normal" />&nbsp;}else if(isNaN(document.getElementById("cellphone").value) &amp;&amp; !partten.test(document.getElementById("cellphone").value)){<br style="line-height: normal" />&nbsp;&nbsp;&nbsp;&nbsp; alert("手机号码只能是数字,并且只能以13或15开头并且长度是11位");<br style="line-height: normal" />&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById("cellphone").focus();<br style="line-height: normal" />&nbsp;&nbsp;&nbsp;&nbsp; return false;<br style="line-height: normal" />&nbsp;}</p></div><img src ="http://www.blogjava.net/AndyZhang/aggbug/376384.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AndyZhang/" target="_blank">SkyDream</a> 2012-04-23 16:01 <a href="http://www.blogjava.net/AndyZhang/archive/2012/04/23/376384.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>winform相对路径和绝对路径</title><link>http://www.blogjava.net/AndyZhang/archive/2012/04/23/376358.html</link><dc:creator>SkyDream</dc:creator><author>SkyDream</author><pubDate>Mon, 23 Apr 2012 05:39:00 GMT</pubDate><guid>http://www.blogjava.net/AndyZhang/archive/2012/04/23/376358.html</guid><description><![CDATA[<pre class="reply-text mb10" id="best-answer-content" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 10px; word-spacing: 0px; font: 14px/22px Arial; text-transform: none; color: rgb(0,0,0); text-indent: 0px; padding-top: 0px; zoom: 1; letter-spacing: normal; background-color: rgb(255,252,246); word-wrap: break-word; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">绝对路径：是从盘符开始的路径，形如
C:\windows\system32\cmd.exe
相对路径：是从当前路径开始的路径，假如当前路径为C:\windows
要描述上述路径，只需输入
system32\cmd.exe
实际上，严格的相对路径写法应为
.\system32\cmd.exe
其中，.表示当前路径，在通道情况下可以省略，只有在特殊的情况下不能省略。
假如当前路径为c:\program files
要调用上述命令，则需要输入
..\windows\system32\cmd.exe
其中，..为父目录。
当前路径如果为c:\program files\common files
则需要输入
..\..\windows\system32\cmd.exe</pre>winform的默认相对路径是相对于 bin文件夹下的debug文件夹的位置<br />例如bin文件夹下的file文件夹的a.mp3文件 的相对路径为 file/a.mp3<br />bin文件夹外的 file文件夹的a.mp3文件 的相对路径为 ../../file/a.mp3 <br /><br /><a style="word-spacing: 0px; font: 20px/30px 'Microsoft YaHei'; text-transform: none; color: rgb(102,102,102); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; text-decoration: none; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" href="http://blog.csdn.net/lbuskeep/article/details/7252148"><span style="color: #3366ff">C# Winform中如何获取文件路径</span></a><br />
<p style="word-spacing: 0px; font: 14px/26px Arial; text-transform: none; color: rgb(51,51,51); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span style="color: #3366ff">获取文件名方法：</span></p>
<p style="word-spacing: 0px; font: 14px/26px Arial; text-transform: none; color: rgb(51,51,51); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span style="color: #3366ff">用System.IO.Path.GetFileName和System.IO.Path.GetFileNameWithoutExtension（无扩展名）的方法</span></p>
<p style="word-spacing: 0px; font: 14px/26px Arial; text-transform: none; color: rgb(51,51,51); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span style="color: #3366ff">获取文件路径方法：</span></p>
<p style="word-spacing: 0px; font: 14px/26px Arial; text-transform: none; color: rgb(51,51,51); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span style="color: #3366ff">//获取当前进程的完整路径，包含文件名(进程名)。</span><span id="more-1957"></span><br /><span style="color: #3366ff">string str = this.GetType().Assembly.Location;</span><br /><span style="color: #3366ff">result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)</span></p>
<p style="word-spacing: 0px; font: 14px/26px Arial; text-transform: none; color: rgb(51,51,51); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span style="color: #3366ff">//获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径，包含文件名(进程名)。</span><br /><span style="color: #3366ff">string str = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;</span><br /><span style="color: #3366ff">result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)</span></p>
<p style="word-spacing: 0px; font: 14px/26px Arial; text-transform: none; color: rgb(51,51,51); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span style="color: #3366ff">//获取和设置当前目录（即该进程从中启动的目录）的完全限定路径。</span><br /><span style="color: #3366ff">string str = System.Environment.CurrentDirectory;</span><br /><span style="color: #3366ff">result: X:\xxx\xxx (.exe文件所在的目录)</span></p>
<p style="word-spacing: 0px; font: 14px/26px Arial; text-transform: none; color: rgb(51,51,51); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span style="color: #3366ff">//获取当前 Thread 的当前应用程序域的基目录，它由程序集冲突解决程序用来探测程序集。</span><br /><span style="color: #3366ff">string str = System.AppDomain.CurrentDomain.BaseDirectory;</span><br /><span style="color: #3366ff">result: X:\xxx\xxx\ (.exe文件所在的目录+&#8221;\&#8221;)</span></p>
<p style="word-spacing: 0px; font: 14px/26px Arial; text-transform: none; color: rgb(51,51,51); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span style="color: #3366ff">//获取和设置包含该应用程序的目录的名称。</span><br /><span style="color: #3366ff">string str = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;</span><br /><span style="color: #3366ff">result: X:\xxx\xxx\ (.exe文件所在的目录+&#8221;\&#8221;)</span></p>
<p style="word-spacing: 0px; font: 14px/26px Arial; text-transform: none; color: rgb(51,51,51); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span style="color: #3366ff">//获取启动了应用程序的可执行文件的路径，不包括可执行文件的名称。</span><br /><span style="color: #3366ff">string str = System.Windows.Forms.Application.StartupPath;</span><br /><span style="color: #3366ff">result: X:\xxx\xxx (.exe文件所在的目录)</span></p>
<p style="word-spacing: 0px; font: 14px/26px Arial; text-transform: none; color: rgb(51,51,51); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span style="color: #3366ff">//获取启动了应用程序的可执行文件的路径，包括可执行文件的名称。</span><br /><span style="color: #3366ff">string str = System.Windows.Forms.Application.ExecutablePath;</span><br /><span style="color: #3366ff">result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)</span></p>
<p style="word-spacing: 0px; font: 14px/26px Arial; text-transform: none; color: rgb(51,51,51); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span style="color: #3366ff">//获取应用程序的当前工作目录(不可靠)。</span><br /><span style="color: #3366ff">string str = System.IO.Directory.GetCurrentDirectory();</span><br /><span style="color: #3366ff">result: X:\xxx\xxx (.exe文件所在的目录)</span><br /><br /><a style="word-spacing: 0px; font: 20px/30px 'Microsoft YaHei'; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; text-decoration: none; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" href="http://blog.csdn.net/lbuskeep/article/details/7252977"><span style="color: #3366ff">C# 获取路径中，文件名、目录、扩展名等</span></a><br /><br /></p>
<p style="word-spacing: 0px; font: 14px/26px Arial; text-transform: none; color: rgb(51,51,51); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span style="color: #3366ff">string path = "C:\\dir1\\dir2\\foo.txt";</span><br /><span style="color: #3366ff">string str = "GetFullPath：" + Path.GetFullPath(path) + "\r\n";</span><br /><span style="color: #3366ff">str += "GetDirectoryName：" + Path.GetDirectoryName(path) + "\r\n";</span><br /><span style="color: #3366ff">str += "GetFileName：" + Path.GetFileName(path) + "\r\n";</span><br /><span style="color: #3366ff">str += "GetFileNameWithoutExtension：" + Path.GetFileNameWithoutExtension(path) + "\r\n";</span><br /><span style="color: #3366ff">str += "GetExtension：" + Path.GetExtension(path) + "\r\n";</span><br /><span style="color: #3366ff">str += "GetPathRoot：" + Path.GetPathRoot(path) + "\r\n";</span><br /><span style="color: #3366ff">MessageBox.Show(str);</span></p>
<p style="word-spacing: 0px; font: 14px/26px Arial; text-transform: none; color: rgb(51,51,51); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"></p>
<p style="word-spacing: 0px; font: 14px/26px Arial; text-transform: none; color: rgb(51,51,51); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span style="color: #3366ff">结果：</span><span class="Apple-converted-space">&nbsp;<br /></span><span style="color: #3366ff">GetFullPath：C:\dir1\dir2\foo.txt</span><br /><span style="color: #3366ff">GetDirectoryName：C:\dir1\dir2</span><br /><span style="color: #3366ff">GetFileName：foo.txt</span><br /><span style="color: #3366ff">GetFileNameWithoutExtension：foo</span><br /><span style="color: #3366ff">GetExtension：.txt</span><br /><span style="color: #3366ff">GetPathRoot：C:\</span></p>
<p style="word-spacing: 0px; font: 14px/26px Arial; text-transform: none; color: rgb(51,51,51); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"></p>
<p style="word-spacing: 0px; font: 14px/26px Arial; text-transform: none; color: rgb(51,51,51); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"></p>
<p style="word-spacing: 0px; font: 14px/26px Arial; text-transform: none; color: rgb(51,51,51); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"></p>
<p style="word-spacing: 0px; font: 14px/26px Arial; text-transform: none; color: rgb(51,51,51); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span style="color: #3366ff">这里要说明 path 是</span><a style="color: rgb(51,102,153); text-decoration: none" href="http://www.js4j.com/tags.php?/%C8%E7%BA%CE/"><span style="color: #3366ff">如何</span></a><a style="color: rgb(51,102,153); text-decoration: none" href="http://www.js4j.com/"><img style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none" alt="C# 轻松获取路径中文件名、目录、扩展名等" src="http://www.js4j.com/www.js4j.com.gif" border="0" /></a><span style="color: #3366ff">判断目录和文件名的：它把最后一个 \ 后面的内容当作是文件名。</span><span class="Apple-converted-space">&nbsp;</span><span style="color: #3366ff">// 内容来自js4j.com//</span></p>
<ul style="word-spacing: 0px; font: 14px/26px Arial; text-transform: none; color: rgb(51,51,51); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><li><span style="color: #3366ff">C:\dir1\dir2\foo.txt 文件名是 foo.txt，目录名是 C:\dir1\dir2。</span></li><li><span style="color: #3366ff">C:\dir1\dir2\ 文件名是零长度字符串，目录名是 C:\dir1\dir2。</span></li><li><span style="color: #3366ff">C:\dir1\dir2 文件名是 dir2，目录名是 C:\dir1。</span></li></ul><img src ="http://www.blogjava.net/AndyZhang/aggbug/376358.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AndyZhang/" target="_blank">SkyDream</a> 2012-04-23 13:39 <a href="http://www.blogjava.net/AndyZhang/archive/2012/04/23/376358.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>combobox绑定数据库与datagridview绑定数据库</title><link>http://www.blogjava.net/AndyZhang/archive/2012/04/17/374856.html</link><dc:creator>SkyDream</dc:creator><author>SkyDream</author><pubDate>Tue, 17 Apr 2012 01:54:00 GMT</pubDate><guid>http://www.blogjava.net/AndyZhang/archive/2012/04/17/374856.html</guid><description><![CDATA[<div>1.combobox绑定数据库<br />&nbsp;&nbsp;&nbsp;在面页加载事件中绑定：<br />　　SqlConnection connection = new SqlConnection(connectionString)<br />　　DataSet ds = new DataSet();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connection.Open();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; command.Fill(ds, "ds");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (System.Data.SqlClient.SqlException ex)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new Exception(ex.Message);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />　　this.combobox1.DataSource = ds.Tables[0];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.combobox1.ValueMember = "字段名";//下拉框绑定的值，一般与displaymember一一对应；<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.combobox1.DisplayMember = "字段名";&nbsp;//下拉框中显示的值。&nbsp; <br />　　<br />　　this.combobox1.SelectedValue.ToString();//这是下拉框中的值被选定后，获得的被选项。<br /><br />combobox1.DropDownStyle = ComboBoxStyle.DropDownList;//限制combobox的内容不能被用户编辑，只能从下拉表中选<br /><br />２.datagridview绑定数据库<br /><br />　　SqlConnection connection = new SqlConnection(connectionString)<br />　　DataSet ds = new DataSet();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connection.Open();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; command.Fill(ds, "ds");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (System.Data.SqlClient.SqlException ex)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new Exception(ex.Message);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br /><br />　　this.dataGridView1.DataSource = ds;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataGridView1.AutoGenerateColumns = false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataGridView1.DataMember = ds.Tables[0].TableName;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataGridView1.ReadOnly = true;<br />然后在datagridview的编辑中添加显示的列名，并将每列的datapropertyname属性与数据库中的字段一一对应（绑定）。<br /><br /><span style="color: #0000ff">3.当下拉框中的内容发生改变时引的的事件一般是selectionchangecommitted事件。</span></div><img src ="http://www.blogjava.net/AndyZhang/aggbug/374856.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AndyZhang/" target="_blank">SkyDream</a> 2012-04-17 09:54 <a href="http://www.blogjava.net/AndyZhang/archive/2012/04/17/374856.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WinForm的TextBox中只能数字与字母而不能输入其他字符</title><link>http://www.blogjava.net/AndyZhang/archive/2012/04/16/374711.html</link><dc:creator>SkyDream</dc:creator><author>SkyDream</author><pubDate>Mon, 16 Apr 2012 02:14:00 GMT</pubDate><guid>http://www.blogjava.net/AndyZhang/archive/2012/04/16/374711.html</guid><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: private   void   textBox1_KeyPress(object   sender,   System.Windows.Forms.KeyPressEventArgs   e)     {     if((e.KeyChar&gt;='0'&amp;&amp;e.KeyChar&lt;='9')||(e.KeyChar&gt;='A'&amp;&amp;e.KeyChar...&nbsp;&nbsp;<a href='http://www.blogjava.net/AndyZhang/archive/2012/04/16/374711.html'>阅读全文</a><img src ="http://www.blogjava.net/AndyZhang/aggbug/374711.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AndyZhang/" target="_blank">SkyDream</a> 2012-04-16 10:14 <a href="http://www.blogjava.net/AndyZhang/archive/2012/04/16/374711.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>winfrom下的基本控件的常用属性与事件</title><link>http://www.blogjava.net/AndyZhang/archive/2012/04/16/374706.html</link><dc:creator>SkyDream</dc:creator><author>SkyDream</author><pubDate>Mon, 16 Apr 2012 01:41:00 GMT</pubDate><guid>http://www.blogjava.net/AndyZhang/archive/2012/04/16/374706.html</guid><description><![CDATA[&nbsp;1.&nbsp;&nbsp;textBox <br />&nbsp;&nbsp;&nbsp;&nbsp; 文本框textBox失去焦点事件&nbsp; 当失去焦点时触发leave 事件。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如&nbsp; private void textBox1_Leave(object sender, EventArgs e)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为控件设置输入焦点 是bool类型：&nbsp; bool&nbsp; control.focus();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 单行变多行：把textBox 的multiline属性设为true ，是否有滚动条，scorllbars设为both ,再把文本框拉宽点儿就行了。<br />&nbsp;&nbsp;&nbsp;&nbsp; 
<h4 id="questionTitle" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 20px; word-spacing: 0px; font: bold 16px/24px Arial, Helvetica, sans-serif, SimSun; text-transform: none; color: #000000; text-indent: 0px; padding-top: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: none; webkit-text-stroke-width: 0px">C#里面如何选中文本框里面的内容？</h4>&nbsp;&nbsp;&nbsp;&nbsp; <pre style="padding-right: 0px; padding-left: 0px; font-weight: normal; font-size: 14px; padding-bottom: 0px; margin: 0px; word-spacing: 0px; text-transform: none; color: #000000; text-indent: 0px; line-height: 26px; padding-top: 0px; font-style: normal; letter-spacing: normal; font-variant: normal; orphans: 2; widows: 2; webkit-text-size-adjust: none; webkit-text-stroke-width: 0px">   textBox1.SelectAll();</pre><br />
<div class="replenish" style="padding-right: 0px; padding-left: 20px; padding-bottom: 0px; margin-top: 0px; margin-right: 20px; margin-bottom: 0px; margin-left: 20px; word-spacing: 0px; font-family: Arial, Helvetica, sans-serif, SimSun; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; line-height: 22px; overflow-x: hidden; overflow-y: hidden; text-transform: none; color: #000000; text-indent: 0px; padding-top: 13px; zoom: 1; white-space: normal; letter-spacing: normal; position: relative; orphans: 2; widows: 2; border-image: initial; "><span style="color: #999999">补充回答：</span> 
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px; webkit-text-size-adjust: none">不过要先Focus();</p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px; webkit-text-size-adjust: none">也就是先获取焦点 然后在调用上面的方法</p></div>
<div class="replenish" style="padding-right: 0px; padding-left: 20px; padding-bottom: 0px; margin-top: 0px; margin-right: 20px; margin-bottom: 0px; margin-left: 20px; word-spacing: 0px; font-family: Arial, Helvetica, sans-serif, SimSun; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; line-height: 22px; overflow-x: hidden; overflow-y: hidden; text-transform: none; color: #000000; text-indent: 0px; padding-top: 13px; zoom: 1; white-space: normal; letter-spacing: normal; position: relative; orphans: 2; widows: 2; border-image: initial; "><span style="color: #999999">补充回答：</span> 
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px; webkit-text-size-adjust: none">比如要选中textBox1的内容</p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px; webkit-text-size-adjust: none">textBox1.Focus();<br />textBox1.SelectAll();</p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px; webkit-text-size-adjust: none">这样就行了</p></div><img src ="http://www.blogjava.net/AndyZhang/aggbug/374706.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AndyZhang/" target="_blank">SkyDream</a> 2012-04-16 09:41 <a href="http://www.blogjava.net/AndyZhang/archive/2012/04/16/374706.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何实现点击textbox显示monthCalendar 选择monthCalendar把值传给textbox</title><link>http://www.blogjava.net/AndyZhang/archive/2012/04/13/374094.html</link><dc:creator>SkyDream</dc:creator><author>SkyDream</author><pubDate>Fri, 13 Apr 2012 09:21:00 GMT</pubDate><guid>http://www.blogjava.net/AndyZhang/archive/2012/04/13/374094.html</guid><description><![CDATA[<dt style="word-spacing: 0px; font: bold 12px/24px simsun; text-transform: none; color: rgb(51,51,51); text-indent: 6px; white-space: normal; letter-spacing: normal; height: 24px; background-color: rgb(245,245,245); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">C# code 
<dd style="border-right: rgb(221,221,221) 1px solid; border-top: rgb(221,221,221) 1px solid; margin: 0px; word-spacing: 0px; font: 12px/23px simsun; text-transform: none; border-left: rgb(221,221,221) 1px solid; color: rgb(0,0,0); text-indent: 0px; border-bottom: rgb(221,221,221) 1px solid; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><pre><div><span style="color: rgb(0,0,255); line-height: 18px">private</span><span style="color: rgb(0,0,0); line-height: 18px"> </span><span style="color: rgb(0,0,255); line-height: 18px">void</span><span style="color: rgb(0,0,0); line-height: 18px"> textBox1_MouseDown(</span><span style="color: rgb(0,0,255); line-height: 18px">object</span><span style="color: rgb(0,0,0); line-height: 18px"> sender, MouseEventArgs e)
        {
            MonthCalendar ms </span><span style="color: rgb(0,0,0); line-height: 18px">=</span><span style="color: rgb(0,0,0); line-height: 18px"> </span><span style="color: rgb(0,0,255); line-height: 18px">new</span><span style="color: rgb(0,0,0); line-height: 18px"> MonthCalendar();
            </span><span style="color: rgb(0,0,255); line-height: 18px">this</span><span style="color: rgb(0,0,0); line-height: 18px">.Controls.Add(ms);
            ms.DateChanged </span><span style="color: rgb(0,0,0); line-height: 18px">+=</span><span style="color: rgb(0,0,0); line-height: 18px"> </span><span style="color: rgb(0,0,255); line-height: 18px">new</span><span style="color: rgb(0,0,0); line-height: 18px"> DateRangeEventHandler(ms_DateChanged);
        }
</span><span style="color: rgb(0,0,255); line-height: 18px">void</span><span style="color: rgb(0,0,0); line-height: 18px"> ms_DateChanged(</span><span style="color: rgb(0,0,255); line-height: 18px">object</span><span style="color: rgb(0,0,0); line-height: 18px"> sender, DateRangeEventArgs e)
        {
            </span><span style="color: rgb(0,0,255); line-height: 18px">this</span><span style="color: rgb(0,0,0); line-height: 18px">.textBox1.Text </span><span style="color: rgb(0,0,0); line-height: 18px">=</span><span style="color: rgb(0,0,0); line-height: 18px"> e.Start.Date.ToString();
        }</span></div></pre><br class="Apple-interchange-newline" /></dd><pre class="reply-text mb10" id="best-answer-content" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 10px; word-spacing: 0px; font: 14px/22px Arial; text-transform: none; color: rgb(0,0,0); text-indent: 0px; padding-top: 0px; zoom: 1; letter-spacing: normal; background-color: rgb(255,252,246); word-wrap: break-word; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">private void textBox1_MouseClick(object sender, MouseEventArgs e)
        {
            monthCalendar1.Visible = true;
        }

        private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
        {
           textBox1.Text= monthCalendar1.SelectionStart.ToString();
           monthCalendar1.Visible = false;
        } 
这个是不可以复制的，你要找到那个事件才得啊，你单击monthCalendar1控件，在它的事件那里找到DateSelected双击它，然后就出来private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
        { } 这个东西，你就在里面加textBox1.Text= monthCalendar1.SelectionStart.ToString();
           monthCalendar1.Visible = false;</pre>
<p>&nbsp;</p><pre class="reply-text mb10" id="content-364364288" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 10px; word-spacing: 0px; font: 14px/24px Arial; text-transform: none; color: rgb(0,0,0); text-indent: 0px; padding-top: 0px; zoom: 1; letter-spacing: normal; background-color: rgb(255,255,255); word-wrap: break-word; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">事件请自己在属性那栏里添加啦！！

测试可以实现你说的功能啊

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace 日期控件
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void textBox1_MouseClick(object sender, MouseEventArgs e)
        {
            if (this.monthCalendar1.Visible == false)
            { this.monthCalendar1.Visible = true; }
            else
            {

                this.monthCalendar1.Visible = false;
            }
        }

        private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
        {
            string DateTime=this.monthCalendar1.SelectionStart.ToString();
            this.textBox1.Text = DateTime;
            this.monthCalendar1.Visible = false;
        }
    }
} </pre>
<p>&nbsp;</p>
<p>&nbsp;</p> <img src ="http://www.blogjava.net/AndyZhang/aggbug/374094.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AndyZhang/" target="_blank">SkyDream</a> 2012-04-13 17:21 <a href="http://www.blogjava.net/AndyZhang/archive/2012/04/13/374094.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何选中DataGridView中的某行某列</title><link>http://www.blogjava.net/AndyZhang/archive/2012/04/13/374084.html</link><dc:creator>SkyDream</dc:creator><author>SkyDream</author><pubDate>Fri, 13 Apr 2012 08:14:00 GMT</pubDate><guid>http://www.blogjava.net/AndyZhang/archive/2012/04/13/374084.html</guid><description><![CDATA[<span style="display: inline! important; float: none; word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">DataTable对象</span><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><span style="display: inline! important; float: none; word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">DataTable 是 ADO.NET 库中的核心对象，就像普通的数据库中的表一样，它也有行和列。它主要包括DataRow和DataColumn，分别代表行和列。</span><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><span style="display: inline! important; float: none; word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">(1) 数据行(DataRow)</span><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><span style="display: inline! important; float: none; word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">数据行是给定数据表中的一行数据，或者说是数据表中的一条记录。它可能代表一个学生、一位用户、一张订单或者一件货物的相关数据。DataRow对象的方法提供了对表中数据的插入、删除、更新和查看等功能。提取数据表中的行的语句如下：</span><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" />
<dl class="code" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; word-spacing: 0px; font: 12px/23px simsun; overflow: auto; text-transform: none; width: 718px; color: rgb(0,0,0); text-indent: 0px; padding-top: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">
<dt style="font-weight: bold; color: rgb(51,51,51); text-indent: 6px; line-height: 24px; height: 24px; background-color: rgb(245,245,245)">C# code</dt>
<dd style="border-right: rgb(221,221,221) 1px solid; border-top: rgb(221,221,221) 1px solid; margin: 0px; border-left: rgb(221,221,221) 1px solid; border-bottom: rgb(221,221,221) 1px solid"><pre><div><span style="color: rgb(0,0,0); line-height: 18px">DataRow dr </span><span style="color: rgb(0,0,0); line-height: 18px">=</span><span style="color: rgb(0,0,0); line-height: 18px"> dt.Rows[n];</span></div>
</pre></dd></dl><span style="display: inline! important; float: none; word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">其中：DataRow代表数据行类；dr是数据行对象；dt代表数据表对象; n代表行的序号(序号从0开始)。</span><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><span style="display: inline! important; float: none; word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">(2) 数据列(DataColumn)</span><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><span style="display: inline! important; float: none; word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">数据表中的数据列(又称字段)定义了表的数据结构，例如，可以用它确定列中的数据类型和大小，还可以对其他属性进行设置。例如，确定列中的数据是否是只读的、是否是主键、是否允许空值等；还可以让列在一个初始值的基础上自动增殖，增值的步长还可以自行定义。</span><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><span style="display: inline! important; float: none; word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">&nbsp;某列的值需要在数据行的基础上进行。语句如下：</span><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" />
<dl class="code" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; word-spacing: 0px; font: 12px/23px simsun; overflow: auto; text-transform: none; width: 718px; color: rgb(0,0,0); text-indent: 0px; padding-top: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">
<dt style="font-weight: bold; color: rgb(51,51,51); text-indent: 6px; line-height: 24px; height: 24px; background-color: rgb(245,245,245)">C# code</dt>
<dd style="border-right: rgb(221,221,221) 1px solid; border-top: rgb(221,221,221) 1px solid; margin: 0px; border-left: rgb(221,221,221) 1px solid; border-bottom: rgb(221,221,221) 1px solid"><pre><div><span style="color: rgb(0,0,255); line-height: 18px">string</span><span style="color: rgb(0,0,0); line-height: 18px"> dc </span><span style="color: rgb(0,0,0); line-height: 18px">=</span><span style="color: rgb(0,0,0); line-height: 18px"> dr.Columns[</span><span style="color: rgb(128,0,0); line-height: 18px">"</span><span style="color: rgb(128,0,0); line-height: 18px">字段名</span><span style="color: rgb(128,0,0); line-height: 18px">"</span><span style="color: rgb(0,0,0); line-height: 18px">].ToString();</span></div>
</pre></dd></dl><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><span style="display: inline! important; float: none; word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">&nbsp; 或者&nbsp;<span class="Apple-converted-space">&nbsp;</span></span><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" />
<dl class="code" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; word-spacing: 0px; font: 12px/23px simsun; overflow: auto; text-transform: none; width: 718px; color: rgb(0,0,0); text-indent: 0px; padding-top: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">
<dt style="font-weight: bold; color: rgb(51,51,51); text-indent: 6px; line-height: 24px; height: 24px; background-color: rgb(245,245,245)">C# code</dt>
<dd style="border-right: rgb(221,221,221) 1px solid; border-top: rgb(221,221,221) 1px solid; margin: 0px; border-left: rgb(221,221,221) 1px solid; border-bottom: rgb(221,221,221) 1px solid"><pre><div><span style="color: rgb(0,0,255); line-height: 18px">string</span><span style="color: rgb(0,0,0); line-height: 18px"> dc </span><span style="color: rgb(0,0,0); line-height: 18px">=</span><span style="color: rgb(0,0,0); line-height: 18px"> dr.Column[i].ToString();</span><span style="color: rgb(0,128,0); line-height: 18px">//</span><span style="color: rgb(0,128,0); line-height: 18px">i表示对应的列索引</span></div>
</pre></dd></dl><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><span style="display: inline! important; float: none; word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">&nbsp;综合前面的语句，若想取出数据表(dt)中第3条记录中的&#8220;姓名&#8221;字段，并将该字段的值放入一输入框(textBox1)中时，语句可以写成：</span><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" />
<dl class="code" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; word-spacing: 0px; font: 12px/23px simsun; overflow: auto; text-transform: none; width: 718px; color: rgb(0,0,0); text-indent: 0px; padding-top: 0px; white-space: normal; letter-spacing: normal; background-color: rgb(255,255,255); text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">
<dt style="font-weight: bold; color: rgb(51,51,51); text-indent: 6px; line-height: 24px; height: 24px; background-color: rgb(245,245,245)">C# code</dt>
<dd style="border-right: rgb(221,221,221) 1px solid; border-top: rgb(221,221,221) 1px solid; margin: 0px; border-left: rgb(221,221,221) 1px solid; border-bottom: rgb(221,221,221) 1px solid"><pre><div><span style="color: rgb(0,0,0); line-height: 18px">DataRow dRow </span><span style="color: rgb(0,0,0); line-height: 18px">=</span><span style="color: rgb(0,0,0); line-height: 18px"> dt.Rows[</span><span style="color: rgb(128,0,128); line-height: 18px">2</span><span style="color: rgb(0,0,0); line-height: 18px"> ];   </span><span style="color: rgb(0,128,0); line-height: 18px">//</span><span style="color: rgb(0,128,0); line-height: 18px"> 从数据表提取行 </span><span style="color: rgb(0,128,0); line-height: 18px">
</span><span style="color: rgb(0,0,255); line-height: 18px">string</span><span style="color: rgb(0,0,0); line-height: 18px"> textBox1.Text</span><span style="color: rgb(0,0,0); line-height: 18px">=</span><span style="color: rgb(0,0,0); line-height: 18px">dRow[</span><span style="color: rgb(128,0,0); line-height: 18px">"</span><span style="color: rgb(128,0,0); line-height: 18px">CompanyName</span><span style="color: rgb(128,0,0); line-height: 18px">"</span><span style="color: rgb(0,0,0); line-height: 18px">].ToString();  </span><span style="color: rgb(0,128,0); line-height: 18px">//</span><span style="color: rgb(0,128,0); line-height: 18px"> 从行中取出字段的值</span></div></pre></dd></dl><br class="Apple-interchange-newline" />或者&nbsp; d.rows[i][j].toString(); <img src ="http://www.blogjava.net/AndyZhang/aggbug/374084.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AndyZhang/" target="_blank">SkyDream</a> 2012-04-13 16:14 <a href="http://www.blogjava.net/AndyZhang/archive/2012/04/13/374084.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>类型后面加问号 int?</title><link>http://www.blogjava.net/AndyZhang/archive/2012/04/13/374053.html</link><dc:creator>SkyDream</dc:creator><author>SkyDream</author><pubDate>Fri, 13 Apr 2012 03:41:00 GMT</pubDate><guid>http://www.blogjava.net/AndyZhang/archive/2012/04/13/374053.html</guid><description><![CDATA[<p style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #88b03f; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><font style="line-height: normal" color="#000000"><strong style="line-height: normal">单问号---用于给变量设初值的时候,给变量(int类型)赋值为null,而不是0!</strong></font></p>
<p style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #88b03f; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><font style="line-height: normal" color="#000000"><strong style="line-height: normal">双问号---用于判断并赋值,先判断当前变量是否为null,如果是就可以赋一个新值,否则跳过!</strong></font></p><span style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><br style="line-height: normal" /></span><span style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #0000ff; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">public</span><span style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span class="Apple-converted-space">&nbsp;</span></span><span style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #0000ff; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">int</span><span style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">?</span><span style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span class="Apple-converted-space">&nbsp;</span>para = null;<br style="line-height: normal" /></span><span style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #008000; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">//</span><span style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #008000; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">public int para;如果不注释掉此行,而把上一行注释掉的话,下面会报错!</span><span style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #008000; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><br style="line-height: normal" /></span><span style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #0000ff; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">public</span><span style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span class="Apple-converted-space">&nbsp;</span></span><span style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #0000ff; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">int</span><span style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span class="Apple-converted-space">&nbsp;</span>par()<br style="line-height: normal" />{<br style="line-height: normal" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #0000ff; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">return</span><span style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span class="Apple-converted-space">&nbsp;</span></span><span style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #0000ff; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">this</span><span style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">.para<span class="Apple-converted-space">&nbsp;</span></span><span style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">??</span><span style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span class="Apple-converted-space">&nbsp;</span></span><span style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #800080; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">0</span><span style="word-spacing: 0px; font: 12px Arial; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">;<br style="line-height: normal" />}</span> <br />如：<span style="display: inline! important; float: none; word-spacing: 0px; font: bold 15px/24px 微软雅黑; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: #fcfefc; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">c#声明变量加问号（？）的区别 DateTime StartTime和DateTime？ StartTime有什么区别？</span><br /><pre class="reply-text mb10" id="best-answer-content" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 10px; word-spacing: 0px; font: 14px/22px Arial; text-transform: none; color: #000000; text-indent: 0px; padding-top: 0px; zoom: 1; letter-spacing: normal; background-color: #fffcf6; word-wrap: break-word; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">新的语法，可空值类型。

如Int32、结构体等这样的类型是不可能为空的，常见的如int,DateTime都是不可能为空的。所以在需要判断是否有值的场合，可以用加问号的可空值类型，如int?,DateTime?

这时，可以为空(null)，并且可以通过它的HasValue属性来判断是否有值，并通过Value属性获得真正的值。
它可以通过对包装类型直接赋值的方式隐式创建，如：
int? a=32;

具体的，可以搜索&#8220;可空值类型&#8221;来了解更多信息。</pre><img src ="http://www.blogjava.net/AndyZhang/aggbug/374053.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AndyZhang/" target="_blank">SkyDream</a> 2012-04-13 11:41 <a href="http://www.blogjava.net/AndyZhang/archive/2012/04/13/374053.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DateTime 格式的意义</title><link>http://www.blogjava.net/AndyZhang/archive/2012/04/13/374038.html</link><dc:creator>SkyDream</dc:creator><author>SkyDream</author><pubDate>Fri, 13 Apr 2012 02:32:00 GMT</pubDate><guid>http://www.blogjava.net/AndyZhang/archive/2012/04/13/374038.html</guid><description><![CDATA[<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 5px auto; word-spacing: 0px; font: 13px/19px verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; text-transform: none; color: #000000; text-indent: 0px; padding-top: 0px; white-space: normal; letter-spacing: normal; background-color: #fefef2; text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><strong style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">格式化格式说明符</strong>&nbsp;</p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 5px auto; word-spacing: 0px; font: 13px/19px verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; text-transform: none; color: #000000; text-indent: 0px; padding-top: 0px; white-space: normal; letter-spacing: normal; background-color: #fefef2; text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">　　d<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示月份的当前日期，以 1 到 31 之间的一个数字表示，包括 1 和 31。如果日期只有一位数字 (1-9)，则它显示为一位数字。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　请注意，如果&#8220;d&#8221;格式说明符单独使用，没有其他自定义格式字符串，则它被解释为标准短日期模式格式说明符。如果&#8220;d&#8221;格式说明符与其他自定义格式说明符或者&#8220;%&#8221;字符一起传递，则它被解释为自定义格式说明符。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　dd<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示月份的当前日期，以 1 到 31 之间的一个数字表示，包括 1 和 31。如果日期只有一位数字 (1-9)，则将其格式化为带有前导 0 (01-09)。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　ddd<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示指定的 DateTime 的日期部分缩写名称。如果未提供特定的有效格式提供程序（实现具有预期属性的 IFormatProvider 的非空对象），则使用 DateTimeFormat 的 AbbreviatedDayNames 属性及其与当前所使用线程关联的当前区域性。否则，使用来自指定格式提供程序的 AbbreviatedDayNames 属性。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　dddd（外加任意数量的附加&#8220;d&#8221;字符）<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示指定的 DateTime 的日期全名。如果未提供特定的有效格式提供程序（一个非空对象，可实现具有预期属性的 IFormatProvider），则使用 DateTimeFormat 的 DayNames 属性及其与当前所使用线程关联的当前区域性。否则，使用来自指定格式提供程序的 DayNames 属性。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　f<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示秒部分的最高有效位。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　请注意，如果&#8220;f&#8221;格式说明符单独使用，没有其他自定义格式字符串，则它被解释为完整的（长日期 + 短时间）格式说明符。如果&#8220;f&#8221;格式说明符与其他自定义格式说明符或&#8220;%&#8221;字符一起传递，则它被解释为自定义格式说明符。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　使用 System.DateTime.ParseExact 方法进行分析时，所使用的&#8220;f&#8221;格式说明符的位数指示要分析的秒部分的最高有效位的位数。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　ff<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示秒部分的两个最高有效位。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　fff<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示秒部分的三个最高有效位。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　ffff<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示秒部分的四个最高有效位。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　fffff<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示秒部分的五个最高有效位。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　ffffff<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示秒部分的六个最高有效位。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　fffffff<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示秒部分的七个最高有效位。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　F<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示秒部分的最高有效位。如果该位为零，则不显示任何信息。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　使用 System.DateTime.ParseExact(System.String,System.String,System.IFormatProvider) 方法进行分析时，所使用的&#8220;F&#8221;格式说明符的位数指示要分析的秒部分的最高有效位最大数。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　FF<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示秒部分的两个最高有效位。但不显示尾随零（或两个零位）。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　FFF<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示秒部分的三个最高有效位。但不显示尾随零（或三个零位）。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　FFFF<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示秒部分的四个最高有效位。但不显示尾随零（或四个零位）。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　FFFFF<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示秒部分的五个最高有效位。但不显示尾随零（或五个零位）。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　FFFFFF<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示秒部分的六个最高有效位。但不显示尾随零（或六个零位）。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　FFFFFFF<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示秒部分的七个最高有效位。但不显示尾随零（或七个零位）。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　g 或 gg（外加任意数量的附加&#8220;g&#8221;字符）<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示指定的 DateTime 的年代部分（例如 A.D.）。如果未提供特定的有效格式提供程序（一个非空对象，可实现具有预期属性的 IFormatProvider），则年代由与 DateTimeFormat 关联的日历及其与当前线程关联的当前区域性确定。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　请注意，如果&#8220;g&#8221;格式说明符单独使用，没有其他自定义格式字符串，则它被解释为标准常规格式说明符。如果&#8220;g&#8221;格式说明符与其他自定义格式说明符或&#8220;%&#8221;字符一起传递，则它被解释为自定义格式说明符。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　h<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　以 1 到 12 范围中的一个数字显示指定的 DateTime 的小时数，该小时数表示自午夜（显示为 12）或中午（也显示为 12）后经过的整小时数。如果单独使用这种格式，则无法区别某一小时是中午以前还是中午以后的时间。如果该小时是单个数字 (1-9)，则它显示为单个数字。显示小时时不发生任何舍入。例如，DateTime 为 5:43 时返回 5。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　hh, hh（外加任意数量的附加&#8220;h&#8221;字符）<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　以 1 到 12 范围中的一个数字显示指定的 DateTime 的小时数，该小时数表示自午夜（显示为 12）或中午（也显示为 12）后经过的整小时数。如果单独使用这种格式，则无法区别某一小时是中午以前还是中午以后的时间。如果该小时是单个数字 (1-9)，则将其格式化为前面带有 0 (01-09)。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　H<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　以 0 到 23 范围中的一个数字显示指定的 DateTime 的小时数，该小时数表示自午夜（显示为 0）后经过的整小时数。如果该小时是单个数字 (0-9)，则它显示为单个数字。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　HH, HH（外加任意数量的附加&#8220;H&#8221;字符）<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　以 0 到 23 范围中的一个数字显示指定的 DateTime 的小时数，该小时数表示自午夜（显示为 0）后经过的整小时数。如果该小时是单个数字 (0-9)，则将其格式化为前面带有 0 (01-09)。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　m<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　以 0 到 59 范围中的一个数字显示指定的 DateTime 的分钟数，该分钟数表示自上一小时后经过的整分钟数。如果分钟是一位数字 (0-9)，则它显示为一位数字。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　请注意，如果&#8220;m&#8221;格式说明符单独使用，没有其他自定义格式字符串，则它被解释为标准的月日模式格式说明符。如果&#8220;m&#8221;格式说明符与其他自定义格式说明符或&#8220;%&#8221;字符一起传递，则它被解释为自定义格式说明符。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　mm, mm（外加任意数量的附加&#8220;m&#8221;字符）<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　以 0 到 59 范围中的一个数字显示指定的 DateTime 的分钟数，该分钟数表示自上一小时后经过的整分钟数。如果分钟是一位数字 (0-9)，则将其格式化为带有前导 0 (01-09)。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　M<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示月份，以 1 到 12 之间（包括 1 和 12）的一个数字表示。如果月份是一位数字 (1-9)，则它显示为一位数字。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　请注意，如果&#8220;M&#8221;格式说明符单独使用，没有其他自定义格式字符串，则它被解释为标准的月日模式格式说明符。如果&#8220;M&#8221;格式说明符与其他自定义格式说明符或&#8220;%&#8221;字符一起传递，则它被解释为自定义格式说明符。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　MM<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示月份，以 1 到 12 之间（包括 1 和 12）的一个数字表示。如果月份是一位数字 (1-9)，则将其格式化为带有前导 0 (01-09)。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　MMM<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示指定的 DateTime 的月部分缩写名称。如果未提供特定的有效格式提供程序（一个非空对象，可实现具有预期属性的 IFormatProvider），则使用 DateTimeFormat 的 AbbreviatedMonthNames 属性及其与当前线程关联的当前区域性。否则，使用来自指定格式提供程序的 AbbreviatedMonthNames 属性。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　MMMM<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示指定的 DateTime 的月的全名。如果未提供特定的有效格式提供程序（一个非空对象，可实现具有预期属性的 IFormatProvider），则使用 DateTimeFormat 的 MonthNames 属性及其与当前线程关联的当前区域性。否则，使用来自指定格式提供程序的 MonthNames 属性。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　s<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　以 0 到 59 范围中的一个数字显示指定的 DateTime 的秒数，该秒数表示自上一分钟后经过的整秒数。如果秒是一位数字 (0-9)，则它仅显示为一位数字。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　请注意，如果&#8220;s&#8221;格式说明符单独使用，没有其他自定义格式字符串，则它被解释为标准的可排序日期/时间模式格式说明符。如果&#8220;s&#8221;格式说明符与其他自定义格式说明符或&#8220;%&#8221;字符一起传递，则它被解释为自定义格式说明符。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　ss, ss（外加任意数量的附加&#8220;s&#8221;字符）<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　以 0 到 59 范围中的一个数字显示指定的 DateTime 的秒数，该秒数表示自上一分钟后经过的整秒数。如果秒是一位数字 (0-9)，则将其格式化为带有前导 0 (01-09)。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　t<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示指定的 DateTime 的 A.M./P.M. 指示项的第一个字符。如果未提供特定的有效格式提供程序（一个非空对象，可实现具有预期属性的 IFormatProvider），则使用 DateTimeFormat 的 AMDesignator（或 PMDesignator）属性及其与当前线程关联的当前区域性。否则，使用来自指定 IFormatProvider 的 AMDesignator（或 PMDesignator）属性。如果对于指定的 DateTime 所经过的总整小时数小于 12，则使用 AMDesignator。否则，使用 PMDesignator。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　请注意，如果&#8220;t&#8221;格式说明符单独使用，没有其他自定义格式字符串，则它被解释为标准的长时间模式格式说明符。如果&#8220;t&#8221;格式说明符与其他自定义格式说明符或&#8220;%&#8221;字符一起传递，则它被解释为自定义格式说明符。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　tt, tt（外加任意数量的附加&#8220;t&#8221;字符）<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示指定的 DateTime 的 A.M./P.M. 指示项。如果未提供特定的有效格式提供程序（一个非空对象，可实现具有预期属性的 IFormatProvider），则使用 DateTimeFormat 的 AMDesignator（或 PMDesignator）属性及其与当前线程关联的当前区域性。否则，使用来自指定 IFormatProvider 的 AMDesignator（或 PMDesignator）属性。如果对于指定的 DateTime 所经过的总整小时数小于 12，则使用 AMDesignator。否则，使用 PMDesignator。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　y<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　最多用两位数字显示指定的 DateTime 的年份。忽略年的前两位数字。如果年份是一位数字 (1-9)，则它显示为一位数字。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　请注意，如果&#8220;y&#8221;格式说明符单独使用，没有其他自定义格式字符串，则它被解释为标准短日期模式格式说明符。如果&#8220;y&#8221;格式说明符与其他自定义格式说明符或&#8220;%&#8221;字符一起传递，则它被解释为自定义格式说明符。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　yy<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　最多用两位数字显示指定的 DateTime 的年份。忽略年的前两位数字。如果年份是一位数字 (1-9)，则将其格式化为带有前导 0 (01-09)。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　yyyy<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　显示指定的 DateTime 的年份部分（包括纪元）。如果年份长度小于四位，则按需要在前面追加零以使显示的年份长度达到四位。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　z<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　仅以整小时数为单位显示系统当前时区的时区偏移量。偏移量总显示为带有前导符号（零显示为&#8220;+0&#8221;），指示早于格林威治时间 (+) 或迟于格林威治时间 (-) 的小时数。值的范围是 -12 到 +13。如果偏移量为一位数 (0-9)，则将其显示为带有合适前导符号的一位数。时区设置以 +X 或 &#8211;X 的形式指定，其中 X 是相对于 GMT 的小时偏差。显示的偏差受夏时制的影响。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　zz<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　仅以整小时数为单位显示系统当前时区的时区偏移量。偏移量总显示为带有前导或尾随符号（零显示为&#8220;+00&#8221;），指示早于格林威治时间 (+) 或迟于格林威治时间 (-) 的小时数。值范围为 -12 到 +13。如果偏移量为一位数 (0-9)，则将其格式化为前面带有 0 (01-09) 并带有适当的前导符号。时区设置以 +X 或 &#8211;X 的形式指定，其中 X 是相对于 GMT 的小时偏差。显示的偏差受夏时制的影响。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　zzz, zzz（外加任意数量的附加&#8220;z&#8221;字符）<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　以小时和分钟为单位显示系统当前时区的时区偏移量。偏移量总是显示为带有前导或尾随符号（零显示为&#8220;+00:00&#8221;），指示早于格林威治时间 (+) 或迟于格林威治时间 (-) 的小时数。值范围为 -12:00 到 +13:00。如果偏移量为一位数 (0-9)，则将其格式化为前面带有 0 (01-09) 并带有适当的前导符号。时区设置以 +X 或 &#8211;X 的形式指定，其中 X 是相对于 GMT 的小时偏差。显示的偏差受夏时制的影响。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　:<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　时间分隔符。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　/<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　日期分隔符。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　"<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　带引号的字符串。显示转义符 (/) 之后两个引号之间的任何字符串的文本值。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　'<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　带引号的字符串。显示两个&#8220;'&#8221;字符之间的任何字符串的文本值。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　%c<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　其中 c 既是标准格式说明符又是自定义格式说明符，显示与格式说明符关联的自定义格式模式。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　请注意，如果格式说明符作为单个字符来单独使用，它将被解释成标准格式说明符。只有包含两个或更多字符的格式说明符被解释为自定义格式说明符。说明符可以被同时定义为标准和自定义格式说明符，要显示此种说明符的自定义格式，请在说明符之前加&#8220;%&#8221;符号。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　\c<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　其中 c 是任意字符，转义符将下一个字符显示为文本。在此上下文中，转义符不能用于创建转义序列（如&#8220;\n&#8221;表示换行）。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　任何其他字符<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　其他字符作为文本直接写入输出字符串。<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　向 DateTime.ToString 传递自定义模式时，模式必须至少为两个字符长。如果只传递&#8220;d&#8221;，则公共语言运行库将其解释为标准格式说明符，这是因为所有单个格式说明符都被解释为标准格式说明符。如果传递单个&#8220;h&#8221;，则引发异常，原因是不存在标准的&#8220;h&#8221;格式说明符。若要只使用单个自定义格式进行格式化，请在说明符的前面或后面添加一个空格。例如，格式字符串&#8220;h&#8221;被解释为自定义格式字符串。</p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 5px auto; word-spacing: 0px; font: 13px/19px verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; text-transform: none; color: #000000; text-indent: 0px; padding-top: 0px; white-space: normal; letter-spacing: normal; background-color: #fefef2; text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><strong style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"></strong></p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 5px auto; word-spacing: 0px; font: 13px/19px verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; text-transform: none; color: #000000; text-indent: 0px; padding-top: 0px; white-space: normal; letter-spacing: normal; background-color: #fefef2; text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><strong style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">基本函数用法</strong></p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 5px auto; word-spacing: 0px; font: 13px/19px verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; text-transform: none; color: #000000; text-indent: 0px; padding-top: 0px; white-space: normal; letter-spacing: normal; background-color: #fefef2; text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">　//今天<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Now.Date.ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　//昨天<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Now.AddDays(-1).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　//明天<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Now.AddDays(1).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　//本周(每一周是从周日始至周六止)<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　//上周(本周再减去7天)<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek))) - 7).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek))) - 7).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　//下周<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek))) + 7).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek))) + 7).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　//本月<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　//一般的写法<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "1"; //第一天<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Parse(DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "1").AddMonths(1).AddDays(-1).ToShortDateString();//最后一天<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　//用C#里ToString的字符格式化更简便<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Now.ToString("yyyy-MM-01");<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).AddDays(-1).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　//上个月，减去一个月份<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(-1).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　//下个月，加去一个月份<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(2).AddDays(-1).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　//7天后<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Now.Date.ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Now.AddDays(7).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　//7天前<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Now.AddDays(-7).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Now.Date.ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　//本年度<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).AddDays(-1).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　//上年度<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(-1).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddDays(-1).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　//下年度<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(2).AddDays(-1).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　//一年四个季度，一个季度三个月<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　//首先我们先把日期推到本季度第一个月，然后这个月的第一天就是本季度的第一天了<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Now.AddMonths(0 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　//同理，本季度的最后一天就是下季度的第一天减一<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Parse(DateTime.Now.AddMonths(3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　//下季度<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Now.AddMonths(3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Parse(DateTime.Now.AddMonths(6 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　//上季度<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Now.AddMonths(-3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />　　DateTime.Parse(DateTime.Now.AddMonths(0 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();</p><img src ="http://www.blogjava.net/AndyZhang/aggbug/374038.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AndyZhang/" target="_blank">SkyDream</a> 2012-04-13 10:32 <a href="http://www.blogjava.net/AndyZhang/archive/2012/04/13/374038.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Message.show()对话框的用法</title><link>http://www.blogjava.net/AndyZhang/archive/2012/04/13/374034.html</link><dc:creator>SkyDream</dc:creator><author>SkyDream</author><pubDate>Fri, 13 Apr 2012 02:03:00 GMT</pubDate><guid>http://www.blogjava.net/AndyZhang/archive/2012/04/13/374034.html</guid><description><![CDATA[<span style="display: inline! important; float: none; word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: #ffffff; text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">DialogResult r1 = MessageBox.Show("是否确定？", "是", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);&nbsp;<span class="Apple-converted-space">&nbsp;</span></span><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: #ffffff; text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><span style="display: inline! important; float: none; word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: #ffffff; text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">&nbsp; if（r1==DialogResult.OK）........</span><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: #ffffff; text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><span style="display: inline! important; float: none; word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: #ffffff; text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">else<br /></span><span style="display: inline! important; float: none; word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: #ffffff; text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">...</span><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: #ffffff; text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><br style="word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: #ffffff; text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px" /><span style="display: inline! important; float: none; word-spacing: 0px; font: 14px/23px simsun; text-transform: none; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; background-color: #ffffff; text-align: left; orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">DialogResult 是个枚举类型，所以直接用.<br /><br />asterisk 是&#8220;星号&#8221;的意思.</span><img src ="http://www.blogjava.net/AndyZhang/aggbug/374034.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AndyZhang/" target="_blank">SkyDream</a> 2012-04-13 10:03 <a href="http://www.blogjava.net/AndyZhang/archive/2012/04/13/374034.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C#控件重绘与重载的区别</title><link>http://www.blogjava.net/AndyZhang/archive/2012/04/11/373808.html</link><dc:creator>SkyDream</dc:creator><author>SkyDream</author><pubDate>Wed, 11 Apr 2012 06:54:00 GMT</pubDate><guid>http://www.blogjava.net/AndyZhang/archive/2012/04/11/373808.html</guid><description><![CDATA[重绘：是Print事件，当控件需要重绘时发生。<br />重载：是load事年。当控件加载时发生。<br />总之有很大的区别，否则会造成莫明奇妙的问题。<img src ="http://www.blogjava.net/AndyZhang/aggbug/373808.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AndyZhang/" target="_blank">SkyDream</a> 2012-04-11 14:54 <a href="http://www.blogjava.net/AndyZhang/archive/2012/04/11/373808.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>