??xml version="1.0" encoding="utf-8" standalone="yes"?>久久精品国产96精品亚洲,亚洲一区二区女搞男,国产成A人亚洲精V品无码http://www.tkk7.com/AndyZhang/category/51490.htmlwelcome to java worldzh-cnTue, 04 Mar 2014 19:04:56 GMTTue, 04 Mar 2014 19:04:56 GMT60WinFormH体间如何传?/title><link>http://www.tkk7.com/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.tkk7.com/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;">本文D</span>Q稍微复杂一点的E序一般都有两个或者更多的H体。有时在E序设计中,数据不仅要在同一个窗体中传递,q要在窗体间传递,其是用子窗体如何改变父H体。WinForm多窗体间传值的Ҏ(gu)有很多,Ҏ(gu)需要传送的值的cd可以采用不同的方?/div><div class="4i0kqki" 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;">H体间传递数据,无论是父H体操作子窗体,q是子窗体操作符H体Q有以下几种方式Q?/strong></p><p style="margin: 20px 0px 0px; padding: 0px;"> </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;">通过构造函数把ȝ体传递到从窗体中Q?/li></ol><p style="margin: 20px 0px 0px; padding: 0px;"> </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;">特点Q传值是双向的,实现?/strong></span></p><p style="margin: 20px 0px 0px; padding: 0px;"> </p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #000000;"><strong style="margin: 0px; padding: 0px;">实现代码如下Q?/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>cM定义一个静态成?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>l静态成员赋?/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>l?span face="Times New Roman" style="margin: 0px; padding: 0px;">app.value</span>赋|以便其他H体调用</span></p><p style="margin: 20px 0px 0px; padding: 0px;"> </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;">q种Ҏ(gu)是利用一个公共变量,先把需要的值存攑ֈq个公共变量Q然后需要的时候再通过d该变量的值来使用</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;">Form1Q?/p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">public static string Form1Value; // 注意Q必ȝ明ؓ(f)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;">Form2Q?/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;">q种方式传|理解和用上都相对的单,但是Ҏ(gu)让变量串|比如W一ơ修改ؓ(f)“a”Q而第二次修改?#8220;b”Q则有可能本来需?#8220;a”值的l果变成?#8220;b”?/p><p style="margin: 20px 0px 0px; padding: 0px;"> </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;">q种Ҏ(gu)与传值方法的W一U有些类|是需要被其他H体讉K的方法用static定义Q以便其他传递可以直接访问到</p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">例子</strong>Q?/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Ҏ(gu)");</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;">使用q种Ҏ(gu)讉K其他H体的方法,在跨H体上实现方便,但是需要需要访问到控g值则不能直接讉KQ需要将值先传递给其他H体Q再有窗体传递回来,或者存储在其他变量后对q变量进行访问?/p><p style="margin: 20px 0px 0px; padding: 0px;"> </p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">四、通过H体的公有属性?/strong></p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">特点Q实现简?/strong></p><p style="margin: 20px 0px 0px; padding: 0px;"> </p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">实现代码如下Q?/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>l?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;"> </strong></p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">五、通过H体的公有属性值和<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;">特点Q实现简?span face="Times New Roman" style="margin: 0px; padding: 0px;">,</span>灉|</strong></p><p style="margin: 20px 0px 0px; padding: 0px;"> </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>Q?/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>作ؓ(f)<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>l?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;"> </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>通过H体的公有属性值和<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;">说明Q?span face="Times New Roman" style="margin: 0px; padding: 0px;">Application.OpenForms</span>属性:(x)获取属于应用E序的打开H体的集合?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;"> </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>Q?/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>l?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;"> </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;">此方法顾名思义是需要的g参数形式传递给需要值的H体</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>Q?/span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">Form1Q?/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;">此种H体间传值方法明显优与第一U的传值参敎ͼ也不?x)出C数据现象Q但是需要注意修改Form2的构造函敎ͼ每个H体的默认构造函数默认都是无参数的,因此需要去修改构造函数?/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;"><strong style="margin: 0px; padding: 0px;">特点Q传值是单向的(不可以互怼|Q实现简?/strong></p><p style="margin: 20px 0px 0px; padding: 0px;"> </p><p style="margin: 20px 0px 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">实现代码如下Q?/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>q样把<span face="Times New Roman" style="margin: 0px; padding: 0px;">111,"222",</span>q?span face="Times New Roman" style="margin: 0px; padding: 0px;">2</span>个g送给?span face="Times New Roman" style="margin: 0px; padding: 0px;">Form2</span></span></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;"><span style="margin: 0px; padding: 0px; color: #000000;">?ji)、用委托来实现?/span></strong></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">委托可以把一个方法作为参数带入另一个方法,在窗体传gQ子H体需要执行一个方法来改变父窗体的|</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">而这个方法,则可以用委托从父H体传递过来。在父窗体中Q声明修Ҏ(gu)本框的方法AfterChildChangeQ在new一个子H体的时候,这个方法传递给子窗体。那么当子窗体点d步按钮时Q会(x)执行父窗体的AfterChildChangeҎ(gu)Q已辑ֈ修改文本框值的目的?/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;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">1、在子窗体中讄一个委托类型的属性:(x)</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000cd;">public Action<string> AfterChangeTextDel { get; set; }</span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">2、在子窗体同步按钮中Q?/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、在父窗体中dҎ(gu)Q?/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、在父窗体启动子H体按钮Q?/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<string>(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、这样也能实现窗体传|子窗体的委托可以在父H体 其他地方可以q行直接执行。:(x)解决此问题。微软引入了事g?/span></p><p style="margin: 20px 0px 0px; padding: 0px;"> </p><p style="margin: 20px 0px 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #000000;"><strong style="margin: 0px; padding: 0px;">十、用事g来实?/strong></span></p><p style="margin: 20px 0px 0px; padding: 0px;"><span face="Times New Roman" style="margin: 0px; padding: 0px;">事g是委托类型的对象。它内部是用委托来实现的Q对于事件来_(d)外部只能注册自己+=Q注销自己-=,外界不可以注销其他的注册者,也不能主动触发事件。而委托则无法实现q些控制Q因此诞生了事gq话总语法?/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;"><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;">q且q定义一?span face="Times New Roman" style="margin: 0px; padding: 0px;">accept</span>事g</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;"> </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>当窗体触发事Ӟ传递自w引?/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>事g的接收者通过一个简单的cd转换得到<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.tkk7.com/AndyZhang/aggbug/410598.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/AndyZhang/" target="_blank">SkyDream</a> 2014-03-04 16:32 <a href="http://www.tkk7.com/AndyZhang/archive/2014/03/04/410598.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Q二Q   内嵌W(xu)ORD/OFFICE的WINFORME序——DSOFRAMER使用结http://www.tkk7.com/AndyZhang/archive/2012/06/05/379993.htmlSkyDreamSkyDreamTue, 05 Jun 2012 02:03:00 GMThttp://www.tkk7.com/AndyZhang/archive/2012/06/05/379993.html
1、直接通过API把WORD/OFFICE的窗口句柄给攑ֈWINFORM中(感觉较ؓ(f)复杂Q;

2、通过WEB BROWSERQ?br />
3、利用DSOFRAMER?br />
本h都测试了一下,觉得DSOFRAMER更符合自q愿望Q故军_使用DSOFRAMER来实现?br />
操作步骤Q?br />
1、从微Y|站下蝲DsoFramer_KB311765_x86.exeQ解开得到dsoframer.ocxQ?br />
2、把dsoframer.ocx拯到系l目录下Qƈ注册Q我是写了一个reg.bat来实玎ͼ(x)

copy dsoframer.ocx c:\windows\system32\dsoframer.ocx
regsvr32.exe c:\windows\system32\dsoframer.ocx

3、启动VS2005Q新创徏一个WINFORM的C#E序Q?br />
4、在设计工具栏中Q新d选项Q在弹出的页面中选择“TAB”,然后览Q选择c:\windows\system32\dsoframer.ocxq行dQ此时设计工h中将看到q个工具Q名字ؓ(f)“DSO FRAMER CONTROL OBJECT”Q?br />
5、拖动此工具到某设计FORMH口中,此时在代码文g中添加了以下行:(x)

private AxDSOFramer.AxFramerControl axFramerControl1;

6、打开文gQthis.axFramerControl1.Open(_filePath);//注:(x)_filePath?doc或?xls为后~的文Ӟ

7、此时就可以直接在打开的WORD/EXCEL上进行编辑保存等{操作了?br />

注:(x)在操作过E中Q发现按打印预览按钮后关闭,?x)引起WORD/EXCEL报错Q找了好久,后来直接安装OFFICE2003 SP3Q哈哈,fix the bugQ不?x)报错了?


本文来自http://www.cnblogs.com/tianfu/archive/2009/05/07/1452047.html



1.dsoframer.ocx复制到c:\windows\system32\
2.双击q行regocx.bat文g

在vs2010中用dsoframer控gQ?br />1.在工L(fng)中添加项Q在COM 选项卡中选择已注册的dsoframer控g?br />2.公共控件中的DSO Framer控g拖到表单上?br />3.在DSO中打开Office文g代码Q?br />this.axFramerControl1.Open("c:\\test.xls");
4.Office文g保存的代码:(x)
this.axFramerControl1.Save("c:\\test.xls",true,"myname","mypass");

例如Q?br />
private void button1_Click(object sender, EventArgs e)
{
this.axFramerControl1.Open("C:\\Documents and Settings\\Administrator\\桌面\\复g 新徏 Microsoft Word 文档.doc");
}

private void button2_Click(object sender, EventArgs e)
{
this.axFramerControl1.Save("C:\\Documents and Settings\\Administrator\\桌面\\111111111 文档.doc", true, "myname", "mypass");
}



SkyDream 2012-06-05 10:03 发表评论
]]>
Q一Q  导出excel表(数据库里的数据表保存ؓ(f)xls的文Ӟhttp://www.tkk7.com/AndyZhang/archive/2012/05/14/378120.htmlSkyDreamSkyDreamMon, 14 May 2012 08:39:00 GMThttp://www.tkk7.com/AndyZhang/archive/2012/05/14/378120.html1.先得Z个表Table?br />2.在代码中Z个excel实例?br />   在徏实例前先引用Microsoft.Office.Interop.Excellg——d引用
   Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
   excel.Workbooks.Add(true);
3.table时的数据Q@环遍历插入到excel中?br />
具体实例如下Q?br />        string connectionstr = "Server=192.168.1.10;database=ssh;uid=sa;pwd=1234";
        string sqlstr = "select * from medstock";
        SqlConnection con = new SqlConnection(connectionstr);
        SqlCommand cmd = new SqlCommand(sqlstr,con);
        DataSet ds = new DataSet();
        DataTable db = new DataTable();
        SqlDataAdapter adp = new SqlDataAdapter(cmd);//׃SqlDataAdapter自n带有数据库打开与关闭功能,所以不用手动打开数据库与关闭?br />        adp.Fill(ds,"table1");
        db = ds.Tables["table1"];

        //建列名,Ҏ(gu)实际情况而定Q即要在excel中显C的列名Q?br />        string[] str=new string[db.Columns.Count];
        for (int i = 0; i < str.Length-2; i++)
        {
            str[i] = db.Columns[i+1].ColumnName;
        }
       //建excel实例。也是table的容器;
       Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
       excel.Workbooks.Add(true);
       //先在excel中显C出table的列名;
       for (int i = 0; i < str.Length; i++)
       {
            excel.Cells[1, i + 1] = str[i];
       }
       //再向excel中@环添加表中的每一行的每一列;
       if (db.Rows.Count > 0)
            {
                for (int i = 0; i < db.Rows.Count; i++)
                {
                    for (int j = 1; j < db.Columns.Count; j++)
                    {
                        string str1 = db.Rows[i][j].ToString();
                        excel.Cells[i + 2, j] = "'" + str1;
                   }
                }
            }
        //讄止弹出保存和覆盖的询问提示?nbsp; 
        // excel.DisplayAlerts = false;
        // excel.AlertBeforeOverwriting = false;
        excel.Save();//保存excel文g         
        excel.Quit();//保Excelq程关闭
        excel.Visible = true;// 前台可见 后台q行
        excel = null;



SkyDream 2012-05-14 16:39 发表评论
]]>
C# 计算旉?用timespan函数http://www.tkk7.com/AndyZhang/archive/2012/05/02/377157.htmlSkyDreamSkyDreamWed, 02 May 2012 04:33:00 GMThttp://www.tkk7.com/AndyZhang/archive/2012/05/02/377157.html
命名I间:System

E序?mscorlibQ在 mscorlib.dll 中)

1.DateTime值类型代表了一个从公元0001q?????U到公元9999q?2?1?3?9?9U之间的具体日期时刻。因此,你可以用DateTime值类型来描述M在想象范围之内的旉。一个DateTimeg表了一个具体的时刻
2.TimeSpan值包含了许多属性与Ҏ(gu)Q用于访问或处理一个TimeSpan?br /> 下面的列表涵盖了其中的一部分Q?br /> AddQ与另一个TimeSpan值相加?
Days:q回用天数计的TimeSpan倹{?
Duration:获取TimeSpan的绝对倹{?
Hours:q回用小时计的TimeSpan?
Milliseconds:q回用毫U计的TimeSpan倹{?
Minutes:q回用分钟计的TimeSpan倹{?
Negate:q回当前实例的相反数?
Seconds:q回用秒计算的TimeSpan倹{?
Subtract:从中减去另一个TimeSpan倹{?
Ticks:q回TimeSpan值的tick数?
TotalDays:q回TimeSpanDC的天数?
TotalHours:q回TimeSpanDC的时数?
TotalMilliseconds:q回TimeSpanDC的毫秒数?
TotalMinutes:q回TimeSpanDC的分钟数?
TotalSeconds:q回TimeSpanDC的U数?br />
TimeSpan( 10, 20, 30, 40, 50 ) 10.20:30:40.0500000

TimeSpan( 1111, 2222, 3333, 4444, 5555 ) 1205.22:47:09.5550000

TimeSpan (Int32, Int32, Int32) 新?TimeSpan 初始化ؓ(f)指定的小时数、分钟数和秒数?br />
TimeSpan (Int32, Int32, Int32, Int32) 新?TimeSpan 初始化ؓ(f)指定的天数、小时数、分钟数和秒数?br />
TimeSpan (Int32, Int32, Int32, Int32, Int32) 新?TimeSpan 初始化ؓ(f)指定的天数、小时数、分钟数、秒数和毫秒数?br />

ASP.NET 中,两个旉相减Q得C?TimeSpan 实例QTimeSpan 有一些属性:(x)Days、TotalDays、Hours、TotalHours、Minutes、TotalMinutes、Seconds、TotalSeconds、TicksQ注意没?TotalTicks?br />
q些属性名U开始理解有些困难,但阅L文后Q相应?zhn)一定茅塞顿开?br />
举例说明
•旉 1 ?2010-1-2 8:43:35Q?
•旉 2 ?2010-1-12 8:43:34?br />
用时?2 减时?1Q得C?TimeSpan 实例?br />
那么旉 2 比时?1 ?9 ?23 时 59 ?59 U?br />
那么QDays 是 9QHours 是 23QMinutes 是 59QSeconds 是 59?br />
再来?TicksQTick 是一个计时周期,表示一癄U,即一千万分之一U,那么 Ticks 在这里表Cd相差多少个时间周期,卻I(x)9 * 24 * 3600 * 10000000 + 23 * 3600 * 10000000 + 59 * 60 * 10000000 + 59 * 10000000 = 8639990000000?600 是一时的秒数?br />
TotalDays 是?Ticks 换算成日敎ͼ卻I(x)8639990000000 / (10000000 * 24 * 3600) = 9.99998842592593?br />
TotalHours 是?Ticks 换算成小时数Q即Q?639990000000 / (10000000 * 3600) = 239.999722222222?br />
TotalMinutes 是?Ticks 换算成分钟数Q即Q?639990000000 / (10000000 * 60) = 14399.9833333333?br />
TotalSeconds 是?Ticks 换算成秒敎ͼ卻I(x)8639990000000 / (10000000) = 863999?br />
负数

上面是较晚的日期减较早的日期Q所以各属性gؓ(f)正数Q如果是较早的日期减较晚的日期,则属性gؓ(f)负数?br />
TimeSpan(
int days,
int hours,
int minutes,
int seconds
)

求离最q发表时间的函数
public string DateStringFromNow(DateTime dt)
{
TimeSpan span = DateTime.Now - dt;
if (span.TotalDays > 60)
{
return dt.ToShortDateString();
}
else if ( span.TotalDays > 30 )
{
return "1个月?;
}
else if (span.TotalDays > 14)
{
return "2周前";
}
else if (span.TotalDays > 7)
{
return "1周前";
}
else if (span.TotalDays > 1)
{
return string.Format("{0}天前", (int)Math.Floor(span.TotalDays));
}
else if (span.TotalHours > 1)
{
return string.Format("{0}时?, (int)Math.Floor(span.TotalHours));
}
else if (span.TotalMinutes > 1)
{
return string.Format("{0}分钟?, (int)Math.Floor(span.TotalMinutes));
}
else if (span.TotalSeconds >= 1)
{
return string.Format("{0}U前", (int)Math.Floor(span.TotalSeconds));
}
else
{
return "1U前";
}
}

C#中用TimeSpan计算两个旉的差?br />
可以反加两个日期之间M一个时间单位?br /> private string DateDiff(DateTime DateTime1, DateTime DateTime2)
{string dateDiff = null;
TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
dateDiff = ts.Days.ToString()+"?+ ts.Hours.ToString()+"时"+ ts.Minutes.ToString()+"分钟"+ ts.Seconds.ToString()+"U?;
return dateDiff;
}


TimeSpan ts = Date1 - Date2;
double dDays = ts.TotalDays;//带小数的天数Q比??2时l果是1.5
int nDays = ts.Days;//整数天数Q??2时或??0时l果都是1


说明Q?br /> 1.DateTime值类型代表了一个从公元0001q?????U到公元9999q?2?1?3?9?9U之间的具体日期时刻。因此,你可以用DateTime值类型来描述M在想象范围之内的旉。一个DateTimeg表了一个具体的时刻
2.TimeSpan值包含了许多属性与Ҏ(gu)Q用于访问或处理一个TimeSpan?br /> 下面的列表涵盖了其中的一部分Q?br /> AddQ与另一个TimeSpan值相加?br /> Days:q回用天数计的TimeSpan倹{?br /> Duration:获取TimeSpan的绝对倹{?br /> Hours:q回用小时计的TimeSpan?br /> Milliseconds:q回用毫U计的TimeSpan倹{?br /> Minutes:q回用分钟计的TimeSpan倹{?br /> Negate:q回当前实例的相反数?br /> Seconds:q回用秒计算的TimeSpan倹{?br /> Subtract:从中减去另一个TimeSpan倹{?br /> Ticks:q回TimeSpan值的tick数?br /> TotalDays:q回TimeSpanDC的天数?br /> TotalHours:q回TimeSpanDC的时数?br /> TotalMilliseconds:q回TimeSpanDC的毫秒数?br /> TotalMinutes:q回TimeSpanDC的分钟数?br /> TotalSeconds:q回TimeSpanDC的U数?br />

/// <summary>
/// 日期比较
/// </summary>
/// <param name="today">当前日期</param>
/// <param name="writeDate">输入日期</param>
/// <param name="n">比较天数</param>
/// <returns>大于天数q回trueQ小于返回false</returns>
private bool CompareDate(string today, string writeDate, int n)
{
DateTime Today = Convert.ToDateTime(today);
DateTime WriteDate = Convert.ToDateTime(writeDate);
WriteDate = WriteDate.AddDays(n);
if (Today >= WriteDate)
return false;
else
return true;
}



CZ代码Q?br />
<table width="100%" border="1" cellspacing="0" cellpadding="0">

<tr>

<td>TimeSpan('T','2002-10-1','2002-1-1')</td>

<td>&nbsp;<!-- NoahValue ValueName="TimeSpan('T','2002-10-1','2002-1-1')" --></td>

</tr>

<tr>

<td>TimeSpan('d','2002-10-1','2002-1-1')</td>

<td>&nbsp;<!-- NoahValue ValueName="TimeSpan('d','2002-10-1','2002-1-1')" --></td>

</tr>

<tr>

<td>TimeSpan('h','2002-10-1','2002-1-1')</td>

<td>&nbsp;<!-- NoahValue ValueName="TimeSpan('h','2002-10-1','2002-1-1')" --></td>

</tr>

<tr>

<td>TimeSpan('u','2002-10-1','2002-1-1')</td>

<td>&nbsp;<!-- NoahValue ValueName="TimeSpan('u','2002-10-1','2002-1-1')" --></td>

</tr>

<tr>

<td>TimeSpan('m','2002-10-1','2002-1-1')</td>

<td>&nbsp;<!-- NoahValue ValueName="TimeSpan('m','2002-10-1','2002-1-1')" --></td>

</tr>

<tr>

<td>TimeSpan('s','2002-10-1','2002-1-1')</td>

<td>&nbsp;<!-- NoahValue ValueName="TimeSpan('s','2002-10-1','2002-1-1')" --></td>

</tr>

<tr>

<td>TimeSpan('D','2002-10-1','2002-1-1')</td>(责Q~辑Q麦田守望?



在定义Date数据cd时候,必须注意下面三点Q?br />
1. Date数值必M数字W号"#"括v来?br />
2. Date数g的日期数据可有可无,如果有必ȝ合格?m/d/yyyy"?br />
3. Date数g的时间数据可有可无,如果有必d日期数据通过I格分开Qƈ且时分秒之间?:"分开?br />
一QDateTime和TimeSpan的关pd区别Q?br />
DateTime和TimeSpan是Visual Basic .Net中用以处理时间日期类型数据的二个主要的结构,q二者的区别在于QDatTime表示一个固定的旉Q而TimeSpan表示的是一个时间间隔, 即一D|间。在下面介绍的程序示例中QTimeSpanq以当前时间和l定旉之差?br />
二.DateTime和TimeSpan中的常用成员?qing)其说明Q?br />
DateTimel构和TimeSpanl构提供了丰富的Ҏ(gu)和属性,通过q些Ҏ(gu)和属性,几乎可以直接处理M旉日期cd数据。表01和表02分别是DateTimel构的常用属性和常用Ҏ(gu)?qing)其说明Q?br />属?说明
Date 获取此实例的日期部分?br />Day 获取此实例所表示的日期ؓ(f)该月中的W几天?br />DayOfWeek 获取此实例所表示的日期是星期几?br />DayOfYear 获取此实例所表示的日期是该年中的W几天?br />Hour 获取此实例所表示日期的小旉分?br />Millisecond 获取此实例所表示日期的毫U部分?br />Minute 获取此实例所表示日期的分钟部分?br />Month 获取此实例所表示日期的月份部分?br />Now 创徏一个DateTime实例Q它是此计算Z的当前本地日期和旉?br />Second 获取此实例所表示日期的秒部分?br />TimeOfDay 获取此实例的当天的时间?br />Today 获取当前日期?br />Year 获取此实例所表示日期的年份部分?br />
?1QDateTimecȝ常用属性及(qing)其说?br />Ҏ(gu) 说明
Add 指定的TimeSpan的值加到此实例的g?br />AddDays 指定的天数加到此实例的g?br />AddHours 指定的时数加到此实例的g?br />AddMilliseconds 指定的毫秒数加到此实例的g?br />AddMinutes 指定的分钟数加到此实例的g?br />AddMonths 指定的月䆾数加到此实例的g?br />AddSeconds 指定的U数加到此实例的g?br />AddYears 指定的q䆾数加到此实例的g?br />DaysInMonth q回指定q䆾中指定月份的天数?br />IsLeapYear q回指定的年份是否ؓ(f)闰年的指C?br />Parse 日期和旉的指定字W串表示转换成其{效的DateTime实例?br />Subtract 从此实例中减L定的旉或持l时间?br />ToLongDateString 此实例的D{换ؓ(f)其等效的长日期字W串表示形式?br />ToLongTimeString 此实例的D{换ؓ(f)其等效的长时间字W串表示形式?br />ToShortTimeString 此实例的D{换ؓ(f)其等效的短时间字W串表示形式?br />ToShortDateString 此实例的D{换ؓ(f)其等效的短日期字W串表示形式?br />

?2QDateTimel构的常用方法及(qing)其说?br />
?3和表04分别是TimeSpanl构的常用属性和常用Ҏ(gu)?qing)其说明Q?br />属?说明
Days 获取由此实例表示的整天数?br />Hours 获取由此实例表示的整时数?br />Milliseconds 获取由此实例表示的整毫秒数?br />Minutes 获取由此实例表示的整分钟数?br />Seconds 获取由此实例表示的整U数?br />Ticks 获取用刻度表C的此实例的倹{?br />TotalDays 获取以整天数和天的小数部分表C的此实例的倹{?br />TotalHours 获取以整时数和时的小数部分表C的此实例的倹{?br />TotalMilliseconds 获取以整毫秒数和毫秒的小数部分表C的此实例的倹{?br />TotalMinutes 获取以整分钟数和分钟的小数部分表C的此实例的倹{?br />TotalSeconds 获取以整U数和秒的小数部分表C的此实例的倹{?br />
?3QTimeSpanl构的常用属性及(qing)其说?br />Ҏ(gu) 说明
Add 指定的TimeSpand到此实例中?br />Duration q回其gؓ(f)此实例的l对值的TimeSpan?br />FromDays q回表示指定天数的TimeSpanQ其中对天数的指定精到最接近的毫U?br />FromHours q回表示指定时数的TimeSpanQ其中对时数的指定_到最接近的毫U?br />FromMilliseconds q回表示指定毫秒数的TimeSpan?br />FromMinutes q回表示指定分钟数的TimeSpanQ其中对分钟数的指定_到最接近的毫U?br />FromSeconds q回表示指定U数的TimeSpanQ其中对U数的指定精到最接近的毫U?br />Subtract 从此实例中减L定的TimeSpan?br />
?4QTimeSpanl构的常用方法及(qing)其说?/p>

SkyDream 2012-05-02 12:33 发表评论
]]>
为工hd鼠标的“按下、移动、松开”三个事Ӟ用来UdH体http://www.tkk7.com/AndyZhang/archive/2012/04/27/376782.htmlSkyDreamSkyDreamFri, 27 Apr 2012 08:50:00 GMThttp://www.tkk7.com/AndyZhang/archive/2012/04/27/376782.html        private bool isMouseDown = false;
        private Point FormLocation;     //form的location
        private Point mouseOffset;      //鼠标的按下位|?br />        private void toolStrip1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                isMouseDown = true;
                FormLocation = this.Location;
                mouseOffset = Control.MousePosition;
            }

        }

        private void toolStrip1_MouseUp(object sender, MouseEventArgs e)
        {
            isMouseDown = false;
        }

        private void toolStrip1_MouseMove(object sender, MouseEventArgs e)
        {
            int _x = 0;
            int _y = 0;
            if (isMouseDown)
            {
                Point pt = Control.MousePosition;
                _x = mouseOffset.X - pt.X;
                _y = mouseOffset.Y - pt.Y;

                this.Location = new Point(FormLocation.X - _x, FormLocation.Y - _y);
            }

        }



SkyDream 2012-04-27 16:50 发表评论
]]>
用splitQ)截取字符?/title><link>http://www.tkk7.com/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.tkk7.com/AndyZhang/archive/2012/04/25/376616.html</guid><description><![CDATA[ <div id="yeawuak" class="dp-highlighter"> <div id="qwm8ye6" class="bar"> <div id="qqqwii8" class="tools"> <div id="8swi6uy" class="dp-highlighter"><div id="g6qwoui" class="bar"><div id="uoqsuwq" class="tools">C#代码  <a title="收藏q段代码" href="javascript:void()"><img class="spinner" style="display: none" src="http://heisetoufa.iteye.com/images/spinner.gif" alt="" /></a></div></div></div><div id="uceeqss" class="dp-highlighter"> <ol class="dp-c"><li><span id="mkacsgu" class="keyword">string</span><span> s = </span><span id="kcse8e6" class="string">"123a223a456a63223sa"</span><span>;   </span></li><li><span>                        </span><span id="ak88qsi" class="keyword">string</span><span>[] sArray = s.Split(</span><span id="okquoqi" class="string">'a'</span><span>);   </span><span>                     </span><span>  </span></li><li><span>                        MessageBox.Show(sArray[0]);   </span></li><li><span>                        MessageBox.Show(sArray[1]);   </span></li><li><span>                        MessageBox.Show(sArray[2]);   </span></li><li><span>                        MessageBox.Show(sArray[3]);  </span></li></ol></div><pre class="c#" title="c#,winformQsplit截取字符?截串" 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> q样l果也是</p> <p>123</p> <p>223</p> <p>456</p> <p>63223s</p> <p>C#中用split分割字符串的几种Ҏ(gu)</p> <p><strong>W一U方法:(x)<br /></strong></p> <div id="0as8occ" class="dp-highlighter"> <div id="868cwy2" class="bar"> <div id="ouksiya" class="tools">C#代码  <a title="收藏q段代码" 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 id="cm8aqs6" class="keyword">string</span><span> s=abcdeabcdeabcde;   </span></li><li><span id="ioaggww" class="keyword">string</span><span>[] sArray=s.Split(c) ;   </span></li><li><span id="82ymugw" class="keyword">foreach</span><span>(</span><span id="a8yk6ey" class="keyword">string</span><span> i </span><span id="i0uoqem" class="keyword">in</span><span> sArray)   </span></li><li><span>Console.WriteLine(i.ToString());  </span></li></ol></div><pre class="c#" title="c#,winformQsplit截取字符?截串" 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> <br />输出下面的结?<br />ab<br />deab<br />deab<br />de</p> <p><strong>W二U方法:(x)</strong><br />我们看到了结果是以一个指定的字符q行的分剌Ӏ用另一U构造方法对多个字符q行分割:</p> <div id="gcceimo" class="dp-highlighter"> <div id="coeioeu" class="bar"> <div id="agy86ie" class="tools">C#代码  <a title="收藏q段代码" 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 id="iogu86c" class="keyword">string</span><span> s=abcdeabcdeabcde   </span></li><li><span id="0ikymmo" class="keyword">string</span><span>[] sArray1=s.Split(</span><span id="caeiyaq" class="keyword">new</span><span> </span><span id="guysky8" class="keyword">char</span><span>[3]{c,d,e}) ;   </span></li><li><span id="iym66oq" class="keyword">foreach</span><span>(</span><span id="gcquw8m" class="keyword">string</span><span> i </span><span id="e86osao" class="keyword">in</span><span> sArray1)   </span></li><li><span>Console.WriteLine(i.ToString());  </span></li></ol></div><pre class="c#" title="c#,winformQsplit截取字符?截串" 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> 可以输出下面的结果:(x)<br />ab<br />ab<br />ab</p> <p><strong>W三U方法:(x)<br /></strong>除了以上的这两种Ҏ(gu)以外,W三U方法是使用正则表达式。新Z个控制台目?span style="color: #0000ff">然后先添?using </span></p> <div id="2uwcgy6" class="dp-highlighter"> <div id="iy8o6gy" class="bar"> <div id="gmegwkw" class="tools">C#代码  <a title="收藏q段代码" 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;   </span></li><li><span id="2ou6m4k" class="keyword">string</span><span> content=agcsmallmacsmallgggsmallytx;    </span></li><li><span id="s2k4cia" class="keyword">string</span><span>[]resultString=Regex.Split(content,small,RegexOptions.IgnoreCase)    </span></li><li><span id="gyo26qc" class="keyword">foreach</span><span>(</span><span id="ykoiy6c" class="keyword">string</span><span> i </span><span id="woymamc" class="keyword">in</span><span> resultString)   </span></li><li><span>Console.WriteLine(i.ToString());</span></li><li><span>//regexOptions.IgnoreCase是不区分small在字W串content中的大小? </span></li></ol></div> <p> </p><p>输出下面的结?<br />agc<br />mac<br />ggg<br />ytx</p> <p><strong>W四U方法:(x)<br /></strong></p> <div id="ysou6sy" class="dp-highlighter"> <div id="uc4oqum" class="bar"> <div id="e6i6yww" class="tools">C#代码  <a title="收藏q段代码" 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 id="aekcege" class="keyword">string</span><span> str1=?****?****一*****?****?****?   </span></li><li><span id="gycemcc" class="keyword">string</span><span>[] str2;   </span></li><li><span>str1=str1.Replace(*****,*) ;   </span></li><li><span>str2=str1.Split(*) ;   </span></li><li><span id="4eukmas" class="keyword">foreach</span><span>(</span><span id="aiycqm8" class="keyword">string</span><span> i </span><span id="8uwayag" class="keyword">in</span><span> str2)   </span></li><li><span>Console.WriteLine(i.ToString());  </span></li></ol></div><pre class="c#" title="c#,winformQsplit截取字符?截串" 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> <strong>W五U方法:(x)</strong><br />string str1=?*?****一*****?****?****?<br />我希望显C的l果?我是一个教师?br />我如果采用上面的W四U方法来做就?x)生下面的错误Q我   是一个教师。中间有I格输出Q所以输出结果ƈ不是希望的结果,q就又回C正则表达式了Q这时可以采用下面的W五U方法:(x)</p> <div id="s4so2qc" class="dp-highlighter"> <div id="e2gewae" class="bar"> <div id="ck8aqwc" class="tools">C#代码  <a title="收藏q段代码" 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 id="4eegya2" class="keyword">string</span><span> str1=?*?****一*****?****?****?   </span></li><li><span id="wiaoqes" class="keyword">string</span><span>[] str2 = System.Text.RegularExpressions.Regex.Split(str1,@[*]+);    </span></li><li><span id="ooqq8ia" class="keyword">foreach</span><span>(</span><span id="s8im8mm" class="keyword">string</span><span> i </span><span id="uoooqqe" class="keyword">in</span><span> str2)   </span></li><li><span>Console.WriteLine(i.ToString());   </span></li></ol></div><pre class="c#" title="c#,winformQsplit截取字符?截串" 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> q里通过[*]+ 巧妙的完成了我们的目标?br /><br /></p> <p style="font-size: 10pt"><span style="color: #0000ff">例如我想取得一个ftp里的用户名及(qing)密码Q服务器{)|用IE当FTP时或从表中取出FTP的|?/span><br /><span style="color: #0000ff">下面是我的解x\Q?/span><br /><span style="color: #0000ff">设url为收到的URL|q里指:(x)url=ftp://username:password@serverQ请注意q句话的规律</span><br /><span style="color: #0000ff">我想大家都看清楚q个URL里的规律了吧Q就是各个部分都?:"l区分成三个部分Q即Qftp?/username?/span><a href="mailto:password@server"><span style="color: #0000ff">password@server</span></a><br /><span style="color: #0000ff">首先这个URL的各个部分区分开来,用split(url, ":")</span><br /><span style="color: #0000ff">以下是具体的代码Q?/span></p> <p style="font-size: 10pt"><span style="color: #0000ff">parts = split(url, ":")   '此时parts有三部分,parts(0)=ftpQparts(1)=//usernameQparts(2)=password@server'接下来剔除没有用到的信息'׃只取usernameQ所以其中parts(0)跟parts(2)是无用的Q直接不引用Qnewname=replace(parts(1), "http://", "")   '去除//W号Q因不是username里的内容'此时的newname既ؓ(f)用户名?/span></p> <p style="font-size: 10pt"><br /><span style="color: #0000ff">以上是只取用户名的代码,如果你要再取密码的话Q可以参考下面?/span></p> <p style="font-size: 10pt"><span style="color: #0000ff">'׃用户名是属于parts(2)里的Q而且包含服务器的信息Q如果不取服务器Q则Qnewpass = left(parts(2), instr(parts(2),"@")-1)  '取值到@之前的位数。此时的newpass取ؓ(f)密码</span></p> <p style="font-size: 10pt"><br /><span style="color: #0000ff">以上代码Z取服务器地址的代码,如果有取服务器的话,其实也是很简单的</span></p> <p style="font-size: 10pt"><span style="color: #0000ff">newparts=split(parts(2),"@")  '此时newparts分成两部分:(x)newparts(0)为密码,即passwordQnewparts(1)则ؓ(f)服务器地址Q即server'如果要输出密码的的话Q直接response.write newparts(0)可以了Q服务器newparts(1)</span></p> <p style="font-size: 10pt"><br /><span style="color: #0000ff">后话Q对于要取一字符串中的某些字W或部分Q只要抓住规律,再加上用split可以很好做成各U效果?/span></p> </div></div></div> <p> </p> <img src ="http://www.tkk7.com/AndyZhang/aggbug/376616.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/AndyZhang/" target="_blank">SkyDream</a> 2012-04-25 17:31 <a href="http://www.tkk7.com/AndyZhang/archive/2012/04/25/376616.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>c#中字W串截取使用的方?/title><link>http://www.tkk7.com/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.tkk7.com/AndyZhang/archive/2012/04/25/376614.html</guid><description><![CDATA[ <div class="wysumqe" id="cnblogs_post_body"><span style="color: #ff0000" color="#ff0000">String substring(int beginIndex) <br />String substring(int beginIndex, int endIndex) </span><br /><span style="color: #ff0000" color="#ff0000">String.Substring (Int32)</span>         子字W串从指定的字符位置开始?nbsp;<br /><span style="color: #ff0000" color="#ff0000">String.Substring (Int32, Int32)</span> 子字W串从指定的字符位置开始且h指定的长度?br /><strong>举例如下Q?/strong><span style="color: #ff0000" color="#ff0000"><br />             string s = "Hello C# World!";</span><br />             //s1Zs中截取的位置?的字W以后的字符子串,3表示子字W串的v始字W位|?br />            <span style="color: #ff0000" color="#ff0000">string s1=s.Substring(3);</span><br />             //s2Zs中截取的位置?的字W开始长度ؓ(f)2的字W串Q?表示子字W的起始字符位置Q?表示子字W长?br />            <span style="color: #ff0000" color="#ff0000">string s2 = s.Substring(6, 2);</span><br />l果如下Q?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) q回W一ơ出现的指定子字W串在此字符串中的烦引?br />int indexOf(String str, int fromIndex) 从指定的索引处开始,q回W一ơ出现的指定子字W串在此字符串中的烦引?/div><div>int lastIndexOf(String str) q回在此字符串中最双出现的指定子字符串的索引?nbsp;<br />int lastIndexOf(String str, int fromIndex) 从指定的索引处开始向后搜索,q回在此字符串中最后一ơ出现的指定子字W串的烦引?nbsp;<br />int length() q回此字W串的长度?/div><div>boolean startsWith(String prefix) 试此字W串是否以指定的前缀开始?nbsp;<br />boolean startsWith(String prefix, int toffset) 试此字W串是否以指定前~开始,该前~以指定烦引开始?br />例如Q?br />   string  str= "C:\\Documents and Settings\\Administrator\\桌面\\new1.jpg" <br />str.Substring(0,str.LastIndexOf("\\")+1)+"new"+str.Substring(str.LastIndexOf("\\")+1,<br />  str.LastIndexOf(".")-str.LastIndexOf("\\")-1)+str.Substring(str.LastIndexOf("."),str.Length-str.LastIndexOf(".")<br /></div><div><br /></div><div> str.LastIndexOf("\\")——得到最后一?#8220;\\”的烦引?nbsp;</div><div> str.Substring(0,str.LastIndexOf("\\")+1)——得到  C:\\Documents and Settings\\Administrator\\桌面\\ </div><div> str.Substring(str.LastIndexOf("\\")+1,str.LastIndexOf(".")-str.LastIndexOf("\\")-1)  ——得到 new1 </div><div> str.Substring(str.LastIndexOf("."),str.Length-str.LastIndexOf(".") ——得到 .jpg </div> <img src ="http://www.tkk7.com/AndyZhang/aggbug/376614.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/AndyZhang/" target="_blank">SkyDream</a> 2012-04-25 17:19 <a href="http://www.tkk7.com/AndyZhang/archive/2012/04/25/376614.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C# 计算文g的MD5(g息摘要算?http://www.tkk7.com/AndyZhang/archive/2012/04/23/376399.htmlSkyDreamSkyDreamMon, 23 Apr 2012 09:40:00 GMThttp://www.tkk7.com/AndyZhang/archive/2012/04/23/376399.htmlMD5 ?Message Digest Algorithm 5Q信息摘要算法)的羃写,MD5 一U散?Hash)技术,q泛用于加密、解密、数据签名和数据完整性校验等斚w。Q何一个文Ӟ无论是可执行E序、图像文件、(f)时文件或者其他Q何类型的文gQ也不管它体U多大,都可以计出一个MD5|如果文g被修改过Q就只改动了一个字节,?MD5 g?x)变得完全不同。因此,我们可以通过Ҏ(gu)同一文g?MD5 |来校验这个文件是否被“改”q?/font>

C# 可以方便的计出文g?MD5 |(x)

/// <summary>
/// 计算文g?nbsp;MD5 ?br />/// </summary>
/// <param name="fileName">要计?nbsp;MD5 值的文g名和路径</param>
/// <returns>MD5 ?6q制字符?/span></returns>
public static string MD5File(string fileName)
{
    
return HashFile(fileName, "md5");
}

/// <summary>
/// 计算文g的哈希?br />/// </summary>
/// <param name="fileName">要计哈希值的文g名和路径</param>
/// <param name="algName">法:sha1,md5</param>
/// <returns>哈希?6q制字符?/span></returns>
public static string HashFile(string fileName, string algName)
{
    
if (!System.IO.File.Exists(fileName))
        
return string.Empty;

    FileStream fs 
= new FileStream(fileName, FileMode.Open, FileAccess.Read);
    
byte[] hashBytes = HashData(fs, algName);
    fs.Close();
    
return ByteArrayToHexString(hashBytes);
}

/// <summary>
/// 计算哈希?br />/// </summary>
/// <param name="stream">要计哈希值的 Stream</param>
/// <param name="algName">法:sha1,md5</param>
/// <returns>哈希值字节数l?/span></returns>
public static byte[] HashData(Stream stream, string algName)
{
    HashAlgorithm algorithm;
    
if (algName == null)
    {
        
throw new ArgumentNullException("algName 不能?nbsp;null");
    }
    
if (string.Compare(algName, "sha1"true== 0)
    {
        algorithm 
= SHA1.Create();
    }
    
else
    {
        
if (string.Compare(algName, "md5"true!= 0)
        {
            
throw new Exception("algName 只能使用 sha1 ?nbsp;md5");
        }
        algorithm 
= MD5.Create();
    }
    
return algorithm.ComputeHash(stream);
}

    ComputeHash Ҏ(gu)q回的是哈希值字节数l,而文件的 MD5 值通常是用16q制的字W串表示Q?font face="Verdana">字节数组转换?6q制表示的字W串的方法在 System.Web.Configuration.MachineKeySection 中已l提供了一个名?span class="Apple-converted-space"> ByteArrayToHexString Ҏ(gu)Q但是该Ҏ(gu)?font face="Verdana">NonPublic 的,我们不能直接调用。这里我?font face="Verdana">通过反射来调?MachineKeySection 中的 ByteArrayToHexString Ҏ(gu)?/font>

通过反射调用 MachineKeySection 中的 ByteArrayToHexString Ҏ(gu)Q?/span>

/// <summary>
/// 字节数组转换?6q制表示的字W串
/// </summary>
public static string ByteArrayToHexString(byte[] buf)
{
    
int iLen = 0;

    
// 通过反射获取 MachineKeySection 中的 ByteArrayToHexString Ҏ(gu)Q该Ҏ(gu)用于字节数l{换ؓ(f)16q制表示的字W串?/span>
    Type type = typeof(System.Web.Configuration.MachineKeySection);
    MethodInfo byteArrayToHexString 
= type.GetMethod("ByteArrayToHexString", BindingFlags.Static | BindingFlags.NonPublic);

    
// 字节数组转换?6q制表示的字W串
    return (string)byteArrayToHexString.Invoke(nullnew object[] { buf, iLen });
}

    如今“MD5撞生成?#8221;的出玎ͼ?MD5 也正在面临挑战?/p>

    Z介绍一?MD5 工具 Md5CheckerQMd5Checker 是一Ƒօ贏V快速、小巧、易用的文g MD5 D、验证、管理Y件。Md5Checker 的官方网站是Q?font face="Verdana">http://cn.getmd5checker.com/



SkyDream 2012-04-23 17:40 发表评论
]]>
winform怎么比较旉http://www.tkk7.com/AndyZhang/archive/2012/04/23/376397.htmlSkyDreamSkyDreamMon, 23 Apr 2012 09:30:00 GMThttp://www.tkk7.com/AndyZhang/archive/2012/04/23/376397.htmlwinform旉比较。例如:(x)当前旉过早上8点就不可在打卡了。怎么比较的?/span>
DateTime dt1 = DateTime.Now;
DateTime dt2 = Convert.ToDateTime(DateTime.Now.ToShortDateString() + " 08:00:00");
if (DateTime.Compare(dt1, dt2) > 0)
{
    //dt1旉比dt2?
}
else if (DateTime.Compare(dt1, dt2) == 0)
{
    //TODO
}
else
{
    //TODO
}

 

 

数据库里有个l束旉Q?我登录的时候要获取pȝ旉?数据库里的时间做Ҏ(gu)Q没到结束时?可以d  C׃可以d  

 

winform里比较:(x)
Datetime overTime = 获取数据库结束时_(d)
if(Datetime.Now <= overTime)
{
dQ?
}
else
{
无法dQ?
}

数据库里比较(以mysql举例Q:(x)
select QnowQ) < overTime);
其中nowQ)是系l函数当前时_(d)overtime的话你select一下你的结束时_(d)如果是确定值可以直接用'2012-12-21 00:00:00'q样的Ş?/pre>
 if (Convert.ToDateTime(tiems).CompareTo(Convert.ToDateTime(beoverdate)) < 1)

 

C# winform中怎么时间{换成intcd的数字ƈ且与一个数字进行比较?

string num="1234560";
int a=int.Prase(num);
注意Qnum中只能出现数字且开头不?Q否则会(x)出错 
如果是小数就?
string num1="3.1415926";
float bfloat.prase(num1);

 

int.parse

convert.toint32 
系l时间减?0天之后,格式化ؓ(f)数据库中旉的格?/span>
string dt = DateTime.Now.AddDays(-30).ToString("yyyy-MM-dd");

select * from table where 数据库时?> '"+dt+"'

如果能返回记录ؓ(f)0Q说明已l超q?0?br />
DateTime SystemTime = DateTime.Now;  //获得pȝ旉
string str = "2009-8-13 12:00:00";  //str是数据库记录的时?/span>
DateTime DatabaseTime = DateTime.Parse(str);

TimeSpan ts = SystemTime.Subtract(DatabaseTime);  //pȝ旉减去数据库时?/span>

int i = ts.Days;  //间隔的天?/span>

SkyDream 2012-04-23 17:30 发表评论
]]>DateTimePicker控g如何按自定义的格式显C?/title><link>http://www.tkk7.com/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.tkk7.com/AndyZhang/archive/2012/04/23/376394.html</guid><description><![CDATA[<p>首先QDateTimePicker本n提供很多常用的昄方式Q比?007q?3?9日或 07-03-29 ?29/03/07 {等Q可以在DateTimePicker的Format属性中讄。此外DateTimePicker也允许用戯定义昄形式Q可以在DateTimePicker的CustomFormat讄?br />但是Z么我在CustomFormat中设|好了输出Ş式,却没有效果呢?br />原因可能有两个:(x)<br />1Q没有设|DateTimePicker ?Format属性。必dFormat讄成CustomQ否则C(j)ustomFormat是无效的?br />2Q就是微软的bug了,每次讄DateTimePicker.Format = Custom;以后必须紧跟着讄CustomFormat = "your format";即已经存在合法的自定义形式?br /><font face="宋体" color="#333333">------解决Ҏ(gu)--------------------------------------------------------<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">------解决Ҏ(gu)--------------------------------------------------------</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 id="yyoqkw8" class="keyword">custom</span><br /></p> <ul sizset="0" sizcache0057521781218692614="13503"><li sizset="0" sizcache0057521781218692614="13295"><span id="ga2422u" class="def">n. ?fn)惯Q风俗;关</span></li><li sizset="0" sizcache0057521781218692614="13503"><span id="eye8guk" class="def">adj. 定制的,定做?/span></li></ul> <p>若是 DateTime.Now.ToString("yyyyqMM月dd?dddd hh:mm:ss")则显CZؓ(f)Q?***q?*?*日 星期* **Q?*Q?*<br class="Apple-interchange-newline" /><br /><br />日期的替代符P(x)<br />格式字串<br /> 說明<br /> <br />d<br /> 一或二位數的日期?br /> <br />dd<br /> 二位數的日期。個位數日期值的前面會加上零?br /> <br />ddd<br /> 三個字元的星期^寫?br /> <br />dddd<br /> 星期的完整名E?br /> <br />h<br /> 12 時制的一或二位數的小時?br /> <br />hh<br /> 12 時制的二位數小時。個位數值前面會加上零?br /> <br />H<br /> 24 時制的一或二位數的小時?br /> <br />HH<br /> 24 時制的二位數小時。個位數值前面會加上零?br /> <br />m<br /> 一或二位數的分鐘?br /> <br />mm<br /> 二位數的分鐘。個位數值前面會加上零?br /> <br />M<br /> 一或二位數的月份?br /> <br />MM<br /> 二位數的月䆾。個位數值前面會加上零?br /> <br />MMM<br /> 三個字元的月䆾^寫?br /> <br />MMMM<br /> 月䆾的完整名E?br /> <br />s<br /> 一或二位數的秒數?br /> <br />ss<br /> 二位數的U數。個位數值前面會加上零?br /> <br />t<br /> A.M./P.M. 的單一字母^寫 (A.M. 示?"A")?br /> <br />tt<br /> A.M./P.M. 的兩個字母縮?(A.M. 示?"AM")?br /> <br />y<br /> 一位數的年?(2001 示?1)?br /> <br />yy<br /> q䆾的末二位?(2001 示?01)?br /> <br />yyyy<br /> 完整的年?(2001 示?2001)?br /> </p><img src ="http://www.tkk7.com/AndyZhang/aggbug/376394.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/AndyZhang/" target="_blank">SkyDream</a> 2012-04-23 17:10 <a href="http://www.tkk7.com/AndyZhang/archive/2012/04/23/376394.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>winform验证textbox只能输入数字或中文正则表辑ּhttp://www.tkk7.com/AndyZhang/archive/2012/04/23/376384.htmlSkyDreamSkyDreamMon, 23 Apr 2012 08:01:00 GMThttp://www.tkk7.com/AndyZhang/archive/2012/04/23/376384.html验证数字的正则表辑ּ?/span>
验证数字Q^[0-9]*$
验证n位的数字Q^\d{n}$
验证臛_n位数字:(x)^\d{n,}$
验证m-n位的数字Q^\d{m,n}$
验证零和非零开头的数字Q^(0|[1-9][0-9]*)$
验证有两位小数的正实敎ͼ(x)^[0-9]+(.[0-9]{2})?$
验证?-3位小数的正实敎ͼ(x)^[0-9]+(.[0-9]{1,3})?$
验证非零的正整数Q^\+?[1-9][0-9]*$
验证非零的负整数Q^\-[1-9][0-9]*$
验证非负整数Q正整数 + 0Q:(x)^\d+$
验证非正整数Q负整数 + 0Q:(x) ^((-\d+)|(0+))$

验证中文的正则表辑ּ集合
验证所有东亚区的语aQ^[\?-\?]+$ 
验证体和J体Q^[\一-\?]+$ 
验证体:(x)^[\一-\龥]+$

使用Ҏ(gu)如下
使用Regex对象先引用System.Text.RegularExpressions
string s="^[0-9]*$";//正则表达?br style="line-height: normal" />Regex reg=new Regex(s);
if(!reg.IsMatch(this.textbox1.text))
{        
        MessageBox.Show("误入数?);
}

 

 

各式各样的正则表辑ּ参考大全(讉K正则表达式实例库Q:(x) 
^\d+$  //匚w非负整数Q正整数 + 0Q? 
//匚w整数 ^\d+(\.\d+)?$  //匚w非负点敎ͼ正QҎ(gu) + 0Q?span class="Apple-converted-space"> 
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$  //匚w正QҎ(gu) 
^((-\d+(\.\d+)?)|(0+(\.0+)?))$  //匚w非正点敎ͼ负QҎ(gu) + 0Q?span class="Apple-converted-space"> 
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //匚w负QҎ(gu) 
^(-?\d+)(\.\d+)?$  //匚w点?span class="Apple-converted-space"> 
^[A-Za-z]+$          //匚w?6个英文字母组成的字符?span class="Apple-converted-space"> 
^[A-Z]+$     //匚w?6个英文字母的大写l成的字W串 
^[a-z]+$  //匚w?6个英文字母的写l成的字W串 
^[A-Za-z0-9]+$  //匚w由数字和26个英文字母组成的字符?span class="Apple-converted-space"> 
^\w+$  //匚w由数字?6个英文字母或者下划线l成的字W串 
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$    //匚wemail地址 
^[a-zA-z]+://匚w(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$  //匚wurl 
匚w中文字符的正则表辑ּQ?[\u4e00-\u9fa5] 
匚w双字节字W?包括汉字在内)Q[^\x00-\xff] 
匚wI的正则表辑ּQ\n[\s| ]*\r 
匚wHTML标记的正则表辑ּQ?<(.*)>.*<\/>|<(.*) \/>/ 
匚w首尾I格的正则表辑ּQ?^\s*)|(\s*$) 
匚wEmail地址的正则表辑ּQ\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 
匚w|址URL的正则表辑ּQ^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ 
匚w帐号是否合法(字母开_(d)允许5-16字节Q允许字母数字下划线)Q^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 
匚w国内?sh)话L(fng)Q?\d{3}-|\d{4}-)?(\d{8}|\d{7})? 
匚w腾讯QQP(x)^[1-9]*[1-9][0-9]*$

下表是元字符?qing)其在正则表辑ּ上下文中的行为的一个完整列表,具体到每个正则表辑ּW号Q?span class="Apple-converted-space"> 
\ 下一个字W标Cؓ(f)一个特D字W、或一个原义字W、或一个后向引用、或一个八q制转义W?span class="Apple-converted-space"> 
^ 匚w输入字符串的开始位|。如果设|了 RegExp 对象的Multiline 属性,^ 也匹?’\n’ ?’\r’ 之后的位|?span class="Apple-converted-space"> 
$ 匚w输入字符串的l束位置。如果设|了 RegExp 对象的Multiline 属性,$ 也匹?’\n’ ?’\r’ 之前的位|?span class="Apple-converted-space"> 
* 匚w前面的子表达式零ơ或多次?span class="Apple-converted-space"> 
+ 匚w前面的子表达式一ơ或多次? {h(hun)?{1,}?span class="Apple-converted-space"> 
? 匚w前面的子表达式零ơ或一ơ? {h(hun)?{0,1}?span class="Apple-converted-space"> 
{n} n 是一个非负整敎ͼ匚w定的n ơ?span class="Apple-converted-space"> 
{n,} n 是一个非负整敎ͼ臛_匚wn ơ?span class="Apple-converted-space"> 
{n,m} m ?n 均ؓ(f)非负整数Q其中n <= m。最匹?n ơ且最多匹?m ơ。在逗号和两个数之间不能有空根{?span class="Apple-converted-space"> 
? 当该字符紧跟在Q何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面Ӟ匚w模式是非贪婪的。非贪婪模式可能少的匹配所搜烦的字W串Q而默认的贪婪模式则尽可能多的匚w所搜烦的字W串?span class="Apple-converted-space"> 
. 匚w?"\n" 之外的Q何单个字W。要匚w包括 ’\n’ 在内的Q何字W,请用象 ’[.\n]’ 的模式?span class="Apple-converted-space"> 
(pattern) 匚wpattern q获取这一匚w?(?:pattern) 匚wpattern 但不获取匚wl果Q也是说这是一个非获取匚wQ不q行存储供以后用?(?=pattern) 正向预查Q在M匚w pattern 的字W串开始处匚w查找字符丌Ӏ这是一个非获取匚wQ也是_(d)该匹配不需要获取供以后使用?(?!pattern) 负向预查Q与(?=pattern)作用相反 x|y 匚w x ?y?span class="Apple-converted-space"> 
[xyz] 字符集合?span class="Apple-converted-space"> 
[^xyz] 负值字W集合?span class="Apple-converted-space"> 
[a-z] 字符范围Q匹配指定范围内的Q意字W?br style="line-height: normal" />[^a-z] 负值字W范_(d)匚wM不在指定范围内的L字符?span class="Apple-converted-space"> 
\b 匚w一个单词边界,也就是指单词和空格间的位|?span class="Apple-converted-space"> 
\B 匚w非单词边界?span class="Apple-converted-space"> 
\cx 匚w由x指明的控制字W?span class="Apple-converted-space"> 
\d 匚w一个数字字W。等价于 [0-9]?span class="Apple-converted-space"> 
\D 匚w一个非数字字符。等价于 [^0-9]?br style="line-height: normal" /> \f 匚w一个换늬。等价于 \x0c ?\cL?span class="Apple-converted-space"> 
\n 匚w一个换行符。等价于 \x0a ?\cJ?span class="Apple-converted-space"> 
\r 匚w一个回车符。等价于 \x0d ?\cM?span class="Apple-converted-space"> 
\s 匚wMI白字符Q包括空根{制表符、换늬{等。等价于[ \f\n\r\t\v]?span class="Apple-converted-space"> 
\S 匚wM非空白字W。等价于 [^ \f\n\r\t\v]?span class="Apple-converted-space"> 
\t 匚w一个制表符。等价于 \x09 ?\cI?br style="line-height: normal" />\v 匚w一个垂直制表符。等价于 \x0b ?\cK?span class="Apple-converted-space"> 
\w 匚w包括下划U的M单词字符。等价于’[A-Za-z0-9_]’?br style="line-height: normal" />\W 匚wM非单词字W。等价于 ’[^A-Za-z0-9_]’?br style="line-height: normal" />\xn 匚w nQ其?n 为十六进制{义倹{十六进制{义值必Mؓ(f)定的两个数字长?span class="Apple-converted-space"> 
\num 匚w numQ其中num是一个正整数。对所获取的匹配的引用?span class="Apple-converted-space"> 
\n 标识一个八q制转义值或一个后向引用。如?\n 之前臛_ n 个获取的子表辑ּQ则 n 为后向引用。否则,如果 n 为八q制数字 (0-7)Q则 n Z个八q制转义倹{?span class="Apple-converted-space"> 
\nm 标识一个八q制转义值或一个后向引用。如?\nm 之前臛_有is preceded by at least nm 个获取得子表辑ּQ则 nm 为后向引用。如?\nm 之前臛_?n 个获取,?n Z个后跟文?m 的后向引用。如果前面的条g都不满Q若 n ?m 均ؓ(f)八进制数?(0-7)Q则 \nm 匹配八q制转义?nm?\nml 如果 n 为八q制数字 (0-3)Q且 m ?l 均ؓ(f)八进制数?(0-7)Q则匚w?

--------------------------------------------------------------------------------

 


if(document.getElementById("personalemail").value==null || document.getElementById("personalemail").value==""){
     alert("邮箱不能为空");
     return false;
 }else if(!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById("personalemail").value))){
  alert("误入一个有效的邮g地址");
  document.getElementById("personalemail").value="";
  return false;
 }

    var partten = /^1[3,5]\d{9}$/;
 if(document.getElementById("cellphone").value==null || document.getElementById("cellphone").value==""){
    alert("手机L(fng)不能为空");
    document.getElementById("cellphone").focus();
    return false;
 }else if(isNaN(document.getElementById("cellphone").value) && !partten.test(document.getElementById("cellphone").value)){
     alert("手机L(fng)只能是数?q且只能?3?5开头ƈ且长度是11?);
     document.getElementById("cellphone").focus();
     return false;
 }



SkyDream 2012-04-23 16:01 发表评论
]]>
winform相对路径和绝对\?/title><link>http://www.tkk7.com/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.tkk7.com/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">l对路径Q是从盘W开始的路径QŞ? C:\windows\system32\cmd.exe 相对路径Q是从当前\径开始的路径Q假如当前\径ؓ(f)C:\windows 要描qCq\径,只需输入 system32\cmd.exe 实际上,严格的相对\径写法应? .\system32\cmd.exe 其中Q?表示当前路径Q在通道情况下可以省略,只有在特D的情况下不能省略? 假如当前路径为c:\program files 要调用上q命令,则需要输? ..\windows\system32\cmd.exe 其中Q?.为父目录? 当前路径如果为c:\program files\common files 则需要输? ..\..\windows\system32\cmd.exe</pre>winform的默认相对\径是相对?bin文g夹下的debug文g夹的位置<br />例如bin文g夹下的file文g夹的a.mp3文g 的相对\径ؓ(f) file/a.mp3<br />bin文g夹外?file文g夹的a.mp3文g 的相对\径ؓ(f) ../../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" ><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">获取文g名方法:(x)</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.GetFileNameWithoutExtensionQ无扩展名)的方?/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">获取文g路径Ҏ(gu)Q?/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">//获取当前q程的完整\径,包含文g?q程??/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文g所在的目录+.exe文g?</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 lgq将其与当前zd的进E关联的L块的完整路径Q包含文件名(q程??/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文g所在的目录+.exe文g?</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">//获取和设|当前目录(卌q程从中启动的目录)的完全限定\径?/span><br /><span style="color: #3366ff">string str = System.Environment.CurrentDirectory;</span><br /><span style="color: #3366ff">result: X:\xxx\xxx (.exe文g所在的目录)</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 的当前应用程序域的基目录Q它q序集冲突解决E序用来探测E序集?/span><br /><span style="color: #3366ff">string str = System.AppDomain.CurrentDomain.BaseDirectory;</span><br /><span style="color: #3366ff">result: X:\xxx\xxx\ (.exe文g所在的目录+”\”)</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">//获取和设|包含该应用E序的目录的名称?/span><br /><span style="color: #3366ff">string str = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;</span><br /><span style="color: #3366ff">result: X:\xxx\xxx\ (.exe文g所在的目录+”\”)</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">//获取启动了应用程序的可执行文件的路径Q不包括可执行文件的名称?/span><br /><span style="color: #3366ff">string str = System.Windows.Forms.Application.StartupPath;</span><br /><span style="color: #3366ff">result: X:\xxx\xxx (.exe文g所在的目录)</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">//获取启动了应用程序的可执行文件的路径Q包括可执行文g的名U?/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文g所在的目录+.exe文g?</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">//获取应用E序的当前工作目?不可??/span><br /><span style="color: #3366ff">string str = System.IO.Directory.GetCurrentDirectory();</span><br /><span style="color: #3366ff">result: X:\xxx\xxx (.exe文g所在的目录)</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" ><span style="color: #3366ff">C# 获取路径中,文g名、目录、扩展名{?/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 = "GetFullPathQ? + Path.GetFullPath(path) + "\r\n";</span><br /><span style="color: #3366ff">str += "GetDirectoryNameQ? + Path.GetDirectoryName(path) + "\r\n";</span><br /><span style="color: #3366ff">str += "GetFileNameQ? + Path.GetFileName(path) + "\r\n";</span><br /><span style="color: #3366ff">str += "GetFileNameWithoutExtensionQ? + Path.GetFileNameWithoutExtension(path) + "\r\n";</span><br /><span style="color: #3366ff">str += "GetExtensionQ? + Path.GetExtension(path) + "\r\n";</span><br /><span style="color: #3366ff">str += "GetPathRootQ? + 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">l果Q?/span><span id="wyk8ocs" class="Apple-converted-space"> <br /></span><span style="color: #3366ff">GetFullPathQC:\dir1\dir2\foo.txt</span><br /><span style="color: #3366ff">GetDirectoryNameQC:\dir1\dir2</span><br /><span style="color: #3366ff">GetFileNameQfoo.txt</span><br /><span style="color: #3366ff">GetFileNameWithoutExtensionQfoo</span><br /><span style="color: #3366ff">GetExtensionQ?txt</span><br /><span style="color: #3366ff">GetPathRootQC:\</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">q里要说?path ?/span><a style="color: rgb(51,102,153); text-decoration: none" ><span style="color: #3366ff">如何</span></a><a style="color: rgb(51,102,153); text-decoration: none" ><img style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none" alt="C# L获取路径中文件名、目录、扩展名{? src="http://www.js4j.com/www.js4j.com.gif" border="0" /></a><span style="color: #3366ff">判断目录和文件名的:(x)它把最后一?\ 后面的内容当作是文g名?/span><span id="eiwaocq" class="Apple-converted-space"> </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 文g名是 foo.txtQ目录名?C:\dir1\dir2?/span></li><li><span style="color: #3366ff">C:\dir1\dir2\ 文g名是雉度字W串Q目录名?C:\dir1\dir2?/span></li><li><span style="color: #3366ff">C:\dir1\dir2 文g名是 dir2Q目录名?C:\dir1?/span></li></ul><img src ="http://www.tkk7.com/AndyZhang/aggbug/376358.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/AndyZhang/" target="_blank">SkyDream</a> 2012-04-23 13:39 <a href="http://www.tkk7.com/AndyZhang/archive/2012/04/23/376358.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>comboboxl定数据库与datagridviewl定数据?/title><link>http://www.tkk7.com/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.tkk7.com/AndyZhang/archive/2012/04/17/374856.html</guid><description><![CDATA[<div>1.comboboxl定数据?br />   在面加载事件中l定Q?br />  SqlConnection connection = new SqlConnection(connectionString)<br />  DataSet ds = new DataSet();<br />                try<br />                {<br />                    connection.Open();<br />                    SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);<br />                    command.Fill(ds, "ds");<br />                }<br />                catch (System.Data.SqlClient.SqlException ex)<br />                {<br />                    throw new Exception(ex.Message);<br />                }<br />  this.combobox1.DataSource = ds.Tables[0];<br />      this.combobox1.ValueMember = "字段?;//下拉框绑定的|一般与displaymember一一对应Q?br />      this.combobox1.DisplayMember = "字段?; //下拉框中昄的倹{?nbsp; <br />  <br />  this.combobox1.SelectedValue.ToString();//q是下拉框中的D选定后,获得的被选项?br /><br />combobox1.DropDownStyle = ComboBoxStyle.DropDownList;//限制combobox的内容不能被用户~辑Q只能从下拉表中?br /><br />Q?datagridviewl定数据?br /><br />  SqlConnection connection = new SqlConnection(connectionString)<br />  DataSet ds = new DataSet();<br />                try<br />                {<br />                    connection.Open();<br />                    SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);<br />                    command.Fill(ds, "ds");<br />                }<br />                catch (System.Data.SqlClient.SqlException ex)<br />                {<br />                    throw new Exception(ex.Message);<br />                }<br /><br />  this.dataGridView1.DataSource = ds;<br />            dataGridView1.AutoGenerateColumns = false;<br />            dataGridView1.DataMember = ds.Tables[0].TableName;<br />            dataGridView1.ReadOnly = true;<br />然后在datagridview的编辑中d昄的列名,q将每列的datapropertyname属性与数据库中的字D一一对应Q绑定)?br /><br /><span style="color: #0000ff">3.当下拉框中的内容发生改变时引的的事g一般是selectionchangecommitted事g?/span></div><img src ="http://www.tkk7.com/AndyZhang/aggbug/374856.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/AndyZhang/" target="_blank">SkyDream</a> 2012-04-17 09:54 <a href="http://www.tkk7.com/AndyZhang/archive/2012/04/17/374856.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WinForm的TextBox中只能数字与字母而不能输入其他字W?/title><link>http://www.tkk7.com/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.tkk7.com/AndyZhang/archive/2012/04/16/374711.html</guid><description><![CDATA[     摘要: private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { if((e.KeyChar>='0'&&e.KeyChar<='9')||(e.KeyChar>='A'&&e.KeyChar...  <a href='http://www.tkk7.com/AndyZhang/archive/2012/04/16/374711.html'>阅读全文</a><img src ="http://www.tkk7.com/AndyZhang/aggbug/374711.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/AndyZhang/" target="_blank">SkyDream</a> 2012-04-16 10:14 <a href="http://www.tkk7.com/AndyZhang/archive/2012/04/16/374711.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>winfrom下的基本控g的常用属性与事ghttp://www.tkk7.com/AndyZhang/archive/2012/04/16/374706.htmlSkyDreamSkyDreamMon, 16 Apr 2012 01:41:00 GMThttp://www.tkk7.com/AndyZhang/archive/2012/04/16/374706.html     文本框textBox失去焦点事g  当失ȝҎ(gu)触发leave 事g?br />      ?nbsp; private void textBox1_Leave(object sender, EventArgs e)
        {
        }
      为控件设|输入焦?是boolcdQ?nbsp; bool  control.focus();
      单行变多行:(x)把textBox 的multiline属性设为true Q是否有滚动条,scorllbars设ؓ(f)both ,再把文本框拉宽点儿就行了?br />    

C#里面如何选中文本框里面的内容Q?/h4>    
   textBox1.SelectAll();

补充回答Q?/span>

不过要先F(tun)ocus();

也就是先获取焦点 然后在调用上面的Ҏ(gu)

补充回答Q?/span>

比如要选中textBox1的内?/p>

textBox1.Focus();
textBox1.SelectAll();

q样p?/p>



SkyDream 2012-04-16 09:41 发表评论
]]>如何实现点击textbox昄monthCalendar 选择monthCalendar把gltextboxhttp://www.tkk7.com/AndyZhang/archive/2012/04/13/374094.htmlSkyDreamSkyDreamFri, 13 Apr 2012 09:21:00 GMThttp://www.tkk7.com/AndyZhang/archive/2012/04/13/374094.htmlC# code
private void textBox1_MouseDown(object sender, MouseEventArgs e) { MonthCalendar ms = new MonthCalendar(); this.Controls.Add(ms); ms.DateChanged += new DateRangeEventHandler(ms_DateChanged); } void ms_DateChanged(object sender, DateRangeEventArgs e) { this.textBox1.Text = e.Start.Date.ToString(); }

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;
        } 
q个是不可以复制的,你要扑ֈ那个事g才得啊,你单击monthCalendar1控gQ在它的事g那里扑ֈDateSelected双击它,然后出来private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
        { } q个东西Q你在里面加textBox1.Text= monthCalendar1.SelectionStart.ToString();
           monthCalendar1.Visible = false;

 

事g误己在属性那栏里d啦!Q?

试可以实现你说的功能啊

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace 日期控g
{
    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;
        }
    }
} 

 

 



SkyDream 2012-04-13 17:21 发表评论
]]>
如何选中DataGridView中的某行某列http://www.tkk7.com/AndyZhang/archive/2012/04/13/374084.htmlSkyDreamSkyDreamFri, 13 Apr 2012 08:14:00 GMThttp://www.tkk7.com/AndyZhang/archive/2012/04/13/374084.htmlDataTable对象
DataTable ?ADO.NET 库中的核心对象,像普通的数据库中的表一P它也有行和列。它主要包括DataRow和DataColumnQ分别代表行和列?/span>
(1) 数据?DataRow)
数据行是l定数据表中的一行数据,或者说是数据表中的一条记录。它可能代表一个学生、一位用戗一张订单或者一件货物的相关数据。DataRow对象的方法提供了对表中数据的插入、删除、更新和查看{功能。提取数据表中的行的语句如下Q?/span>
C# code
DataRow dr = dt.Rows[n];
其中QDataRow代表数据行类Qdr是数据行对象Qdt代表数据表对? n代表行的序号(序号?开??/span>
(2) 数据?DataColumn)
数据表中的数据列(又称字段)定义了表的数据结构,例如Q可以用它确定列中的数据cd和大,q可以对其他属性进行设|。例如,定列中的数据是否是只读的、是否是主键、是否允许空值等Q还可以让列在一个初始值的基础上自动增D,增值的步长q可以自行定义?/span>
 某列的值需要在数据行的基础上进行。语句如下:(x)


C# code
string dc = dr.Columns["字段?/span>"].ToString();

  或?nbsp; 

C# code
string dc = dr.Column[i].ToString();//i表示对应的列索引

 l合前面的语句,若想取出数据?dt)中第3条记录中?#8220;姓名”字段Qƈ该字段的值放入一输入?textBox1)中时Q语句可以写成:(x)

C# code
DataRow dRow = dt.Rows[2 ]; // 从数据表提取? string textBox1.Text=dRow["CompanyName"].ToString(); // 从行中取出字D늚?/span>

或?nbsp; d.rows[i][j].toString();

SkyDream 2012-04-13 16:14 发表评论
]]>
cd后面加问?int?http://www.tkk7.com/AndyZhang/archive/2012/04/13/374053.htmlSkyDreamSkyDreamFri, 13 Apr 2012 03:41:00 GMThttp://www.tkk7.com/AndyZhang/archive/2012/04/13/374053.html单问?--用于l变量设初值的时?l变?intcd)赋gؓ(f)null,而不?!

双问?--用于判断q赋?先判断当前变量是否ؓ(f)null,如果是就可以赋一个新?否则跌!


public int? para = null;
//public int para;如果不注释掉此行,而把上一行注释掉的话,下面?x)报?
public int par()
{
    
return this.para ?? 0;
}

如:(x)c#声明变量加问PQ)的区?DateTime StartTime和DateTimeQ?StartTime有什么区别?
新的语法Q可I值类型?

如Int32、结构体{这L(fng)cd是不可能为空的,常见的如int,DateTime都是不可能ؓ(f)I的。所以在需要判断是否有值的场合Q可以用加问L(fng)可空值类型,如int?,DateTime?

q时Q可以ؓ(f)I?null)Qƈ且可以通过它的HasValue属性来判断是否有|q过Value属性获得真正的倹{?
它可以通过对包装类型直接赋值的方式隐式创徏Q如Q?
int? a=32;

具体的,可以搜烦“可空值类?#8221;来了解更多信息?/pre>

SkyDream 2012-04-13 11:41 发表评论
]]>DateTime 格式的意?/title><link>http://www.tkk7.com/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.tkk7.com/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, 微Y雅黑, 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, 微Y雅黑, 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 之间的一个数字表C,包括 1 ?31。如果日期只有一位数?(1-9)Q则它显CZؓ(f)一位数字?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  h意,如果“d”格式说明W单独用,没有其他自定义格式字W串Q则它被解释为标准短日期模式格式说明W。如?#8220;d”格式说明W与其他自定义格式说明符或?#8220;%”字符一起传递,则它被解释ؓ(f)自定义格式说明符?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 之间的一个数字表C,包括 1 ?31。如果日期只有一位数?(1-9)Q则其格式化ؓ(f)带有前导 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 的日期部分羃写名U。如果未提供特定的有效格式提供程序(实现h预期属性的 IFormatProvider 的非I对象)Q则使用 DateTimeFormat ?AbbreviatedDayNames 属性及(qing)其与当前所使用U程兌的当前区域性。否则,使用来自指定格式提供E序?AbbreviatedDayNames 属性?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  ddddQ外加Q意数量的附加“d”字符Q?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  昄指定?DateTime 的日期全名。如果未提供特定的有效格式提供程序(一个非I对象,可实现具有预期属性的 IFormatProviderQ,则?DateTimeFormat ?DayNames 属性及(qing)其与当前所使用U程兌的当前区域性。否则,使用来自指定格式提供E序?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" />  昄U部分的最高有效位?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  h意,如果“f”格式说明W单独用,没有其他自定义格式字W串Q则它被解释为完整的Q长日期 + 短时_(d)格式说明W。如?#8220;f”格式说明W与其他自定义格式说明符?#8220;%”字符一起传递,则它被解释ؓ(f)自定义格式说明符?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  使用 System.DateTime.ParseExact Ҏ(gu)q行分析Ӟ所使用?#8220;f”格式说明W的位数指示要分析的U部分的最高有效位的位数?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" />  昄U部分的两个最高有效位?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" />  昄U部分的三个最高有效位?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" />  昄U部分的四个最高有效位?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" />  昄U部分的五个最高有效位?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" />  昄U部分的六个最高有效位?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" />  昄U部分的七个最高有效位?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" />  昄U部分的最高有效位。如果该位ؓ(f)Ӟ则不昄M信息?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) Ҏ(gu)q行分析Ӟ所使用?#8220;F”格式说明W的位数指示要分析的U部分的最高有效位最大数?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" />  昄U部分的两个最高有效位。但不显C尾随零Q或两个零位Q?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" />  昄U部分的三个最高有效位。但不显C尾随零Q或三个零位Q?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" />  昄U部分的四个最高有效位。但不显C尾随零Q或四个零位Q?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" />  昄U部分的五个最高有效位。但不显C尾随零Q或五个零位Q?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" />  昄U部分的六个最高有效位。但不显C尾随零Q或六个零位Q?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" />  昄U部分的七个最高有效位。但不显C尾随零Q或七个零位Q?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  g ?ggQ外加Q意数量的附加“g”字符Q?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  昄指定?DateTime 的年代部分(例如 A.D.Q。如果未提供特定的有效格式提供程序(一个非I对象,可实现具有预期属性的 IFormatProviderQ,则年代由?DateTimeFormat 兌的日历及(qing)其与当前U程兌的当前区域性确定?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  h意,如果“g”格式说明W单独用,没有其他自定义格式字W串Q则它被解释为标准常规格式说明符。如?#8220;g”格式说明W与其他自定义格式说明符?#8220;%”字符一起传递,则它被解释ؓ(f)自定义格式说明符?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 范围中的一个数字显C指定的 DateTime 的小时数Q该时数表C午夜Q显CZؓ(f) 12Q或中午Q也昄?12Q后l过的整时数。如果单独用这U格式,则无法区别某一时是中午以前还是中午以后的旉。如果该时是单个数?(1-9)Q则它显CZؓ(f)单个数字。显C小时时不发生Q何舍入。例如,DateTime ?5:43 时返?5?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  hh, hhQ外加Q意数量的附加“h”字符Q?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  ?1 ?12 范围中的一个数字显C指定的 DateTime 的小时数Q该时数表C午夜Q显CZؓ(f) 12Q或中午Q也昄?12Q后l过的整时数。如果单独用这U格式,则无法区别某一时是中午以前还是中午以后的旉。如果该时是单个数?(1-9)Q则其格式化ؓ(f)前面带有 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 范围中的一个数字显C指定的 DateTime 的小时数Q该时数表C午夜Q显CZؓ(f) 0Q后l过的整时数。如果该时是单个数?(0-9)Q则它显CZؓ(f)单个数字?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  HH, HHQ外加Q意数量的附加“H”字符Q?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  ?0 ?23 范围中的一个数字显C指定的 DateTime 的小时数Q该时数表C午夜Q显CZؓ(f) 0Q后l过的整时数。如果该时是单个数?(0-9)Q则其格式化ؓ(f)前面带有 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 范围中的一个数字显C指定的 DateTime 的分钟数Q该分钟数表C上一时后经q的整分钟数。如果分钟是一位数?(0-9)Q则它显CZؓ(f)一位数字?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  h意,如果“m”格式说明W单独用,没有其他自定义格式字W串Q则它被解释为标准的月日模式格式说明W。如?#8220;m”格式说明W与其他自定义格式说明符?#8220;%”字符一起传递,则它被解释ؓ(f)自定义格式说明符?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  mm, mmQ外加Q意数量的附加“m”字符Q?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  ?0 ?59 范围中的一个数字显C指定的 DateTime 的分钟数Q该分钟数表C上一时后经q的整分钟数。如果分钟是一位数?(0-9)Q则其格式化ؓ(f)带有前导 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" />  昄月䆾Q以 1 ?12 之间Q包?1 ?12Q的一个数字表C。如果月份是一位数?(1-9)Q则它显CZؓ(f)一位数字?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  h意,如果“M”格式说明W单独用,没有其他自定义格式字W串Q则它被解释为标准的月日模式格式说明W。如?#8220;M”格式说明W与其他自定义格式说明符?#8220;%”字符一起传递,则它被解释ؓ(f)自定义格式说明符?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" />  昄月䆾Q以 1 ?12 之间Q包?1 ?12Q的一个数字表C。如果月份是一位数?(1-9)Q则其格式化ؓ(f)带有前导 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 的月部分~写名称。如果未提供特定的有效格式提供程序(一个非I对象,可实现具有预期属性的 IFormatProviderQ,则?DateTimeFormat ?AbbreviatedMonthNames 属性及(qing)其与当前U程兌的当前区域性。否则,使用来自指定格式提供E序?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 的月的全名。如果未提供特定的有效格式提供程序(一个非I对象,可实现具有预期属性的 IFormatProviderQ,则?DateTimeFormat ?MonthNames 属性及(qing)其与当前U程兌的当前区域性。否则,使用来自指定格式提供E序?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 范围中的一个数字显C指定的 DateTime 的秒敎ͼ该秒数表C上一分钟后经q的整秒数。如果秒是一位数?(0-9)Q则它仅昄Z位数字?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  h意,如果“s”格式说明W单独用,没有其他自定义格式字W串Q则它被解释为标准的可排序日?旉模式格式说明W。如?#8220;s”格式说明W与其他自定义格式说明符?#8220;%”字符一起传递,则它被解释ؓ(f)自定义格式说明符?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  ss, ssQ外加Q意数量的附加“s”字符Q?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  ?0 ?59 范围中的一个数字显C指定的 DateTime 的秒敎ͼ该秒数表C上一分钟后经q的整秒数。如果秒是一位数?(0-9)Q则其格式化ؓ(f)带有前导 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. 指示的W一个字W。如果未提供特定的有效格式提供程序(一个非I对象,可实现具有预期属性的 IFormatProviderQ,则?DateTimeFormat ?AMDesignatorQ或 PMDesignatorQ属性及(qing)其与当前U程兌的当前区域性。否则,使用来自指定 IFormatProvider ?AMDesignatorQ或 PMDesignatorQ属性。如果对于指定的 DateTime 所l过的L时数小?12Q则使用 AMDesignator。否则,使用 PMDesignator?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  h意,如果“t”格式说明W单独用,没有其他自定义格式字W串Q则它被解释为标准的长时间模式格式说明符。如?#8220;t”格式说明W与其他自定义格式说明符?#8220;%”字符一起传递,则它被解释ؓ(f)自定义格式说明符?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  tt, ttQ外加Q意数量的附加“t”字符Q?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  昄指定?DateTime ?A.M./P.M. 指示V如果未提供特定的有效格式提供程序(一个非I对象,可实现具有预期属性的 IFormatProviderQ,则?DateTimeFormat ?AMDesignatorQ或 PMDesignatorQ属性及(qing)其与当前U程兌的当前区域性。否则,使用来自指定 IFormatProvider ?AMDesignatorQ或 PMDesignatorQ属性。如果对于指定的 DateTime 所l过的L时数小?12Q则使用 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)Q则它显CZؓ(f)一位数字?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  h意,如果“y”格式说明W单独用,没有其他自定义格式字W串Q则它被解释为标准短日期模式格式说明W。如?#8220;y”格式说明W与其他自定义格式说明符?#8220;%”字符一起传递,则它被解释ؓ(f)自定义格式说明符?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)Q则其格式化ؓ(f)带有前导 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 的年份部分(包括U元Q。如果年份长度小于四位,则按需要在前面q加零以使显C的q䆾长度辑ֈ四位?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" />  仅以整小时数为单位显C系l当前时区的时区偏移量。偏U量LCZؓ(f)带有前导W号Q零昄?#8220;+0”Q,指示早于格林威治旉 (+) 或迟于格林威L?(-) 的小时数。值的范围?-12 ?+13。如果偏U量Z位数 (0-9)Q则其昄为带有合适前导符L(fng)一位数。时|以 +X ?–X 的Ş式指定,其中 X 是相对于 GMT 的小时偏差。显C的偏差受夏时制的媄响?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" />  仅以整小时数为单位显C系l当前时区的时区偏移量。偏U量LCZؓ(f)带有前导或尾随符P零显CZؓ(f)“+00”Q,指示早于格林威治旉 (+) 或迟于格林威L?(-) 的小时数。D围ؓ(f) -12 ?+13。如果偏U量Z位数 (0-9)Q则其格式化ؓ(f)前面带有 0 (01-09) q带有适当的前导符受时|以 +X ?–X 的Ş式指定,其中 X 是相对于 GMT 的小时偏差。显C的偏差受夏时制的媄响?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  zzz, zzzQ外加Q意数量的附加“z”字符Q?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  以小时和分钟为单位显C系l当前时区的时区偏移量。偏U量L昄为带有前导或NW号Q零昄?#8220;+00:00”Q,指示早于格林威治旉 (+) 或迟于格林威L?(-) 的小时数。D围ؓ(f) -12:00 ?+13:00。如果偏U量Z位数 (0-9)Q则其格式化ؓ(f)前面带有 0 (01-09) q带有适当的前导符受时|以 +X ?–X 的Ş式指定,其中 X 是相对于 GMT 的小时偏差。显C的偏差受夏时制的媄响?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" />  旉分隔W?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" />  日期分隔W?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" />  带引L(fng)字符丌Ӏ显C{义符 (/) 之后两个引号之间的Q何字W串的文本倹{?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" />  带引L(fng)字符丌Ӏ显CZ?#8220;'”字符之间的Q何字W串的文本倹{?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 既是标准格式说明W又是自定义格式说明W,昄与格式说明符兌的自定义格式模式?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  h意,如果格式说明W作为单个字W来单独使用Q它?yu)被解释成标准格式说明符。只有包含两个或更多字符的格式说明符被解释ؓ(f)自定义格式说明符。说明符可以被同时定义ؓ(f)标准和自定义格式说明W,要显C此U说明符的自定义格式Q请在说明符之前?#8220;%”W号?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 是Q意字W,转义W将下一个字W显CZؓ(f)文本。在此上下文中,转义W不能用于创{义序列(?#8220;\n”表示换行Q?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" />  其他字符作ؓ(f)文本直接写入输出字符丌Ӏ?br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  ?DateTime.ToString 传递自定义模式Ӟ模式必须臛_Z个字W长。如果只传?#8220;d”Q则公共语言q行库将其解释ؓ(f)标准格式说明W,q是因ؓ(f)所有单个格式说明符都被解释为标准格式说明符。如果传递单?#8220;h”Q则引发异常Q原因是不存在标准的“h”格式说明W。若要只使用单个自定义格式进行格式化Q请在说明符的前面或后面d一个空根{例如,格式字符?#8220;h”被解释ؓ(f)自定义格式字W串?/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, 微Y雅黑, 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, 微Y雅黑, 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, 微Y雅黑, 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" />  //上周(本周再减??<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"; //W一?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的字W格式化更简?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" />  //一q四个季度,一个季度三个月<br style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px" />  //首先我们先把日期推到本季度第一个月Q然后这个月的第一天就是本季度的第一天了<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" />  //同理Q本季度的最后一天就是下季度的第一天减一<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.tkk7.com/AndyZhang/aggbug/374038.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/AndyZhang/" target="_blank">SkyDream</a> 2012-04-13 10:32 <a href="http://www.tkk7.com/AndyZhang/archive/2012/04/13/374038.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Message.show()对话框的用法http://www.tkk7.com/AndyZhang/archive/2012/04/13/374034.htmlSkyDreamSkyDreamFri, 13 Apr 2012 02:03:00 GMThttp://www.tkk7.com/AndyZhang/archive/2012/04/13/374034.htmlDialogResult r1 = MessageBox.Show("是否定Q?, "?, MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);  
  ifQr1==DialogResult.OKQ?.......
else
...

DialogResult 是个枚DcdQ所以直接用.

asterisk ?#8220;星号”的意?


SkyDream 2012-04-13 10:03 发表评论
]]>
C#控g重绘与重载的区别http://www.tkk7.com/AndyZhang/archive/2012/04/11/373808.htmlSkyDreamSkyDreamWed, 11 Apr 2012 06:54:00 GMThttp://www.tkk7.com/AndyZhang/archive/2012/04/11/373808.html重蝲Q是load事年。当控g加蝲时发生?br />M有很大的区别Q否则会(x)造成莫明奇妙的问题?img src ="http://www.tkk7.com/AndyZhang/aggbug/373808.html" width = "1" height = "1" />

SkyDream 2012-04-11 14:54 发表评论
]]>
վ֩ģ壺 ˿wwwƵ| Ƶ߿| ޹Ʒ| Ů1963ҹƵ| ƷAVһ| ޾Ʒվ߹ۿ޹ | ˳ɵӰվɫ| ߹ۿվ| С߿Ƭ˳Ӿ| ˳ɵӰվɫwww| Ļ| 18վ| yellowƵѿ| Ļ| ޾Ʒ鶼| һ| Ѳһ| һƷ| һ| ëƬaëƬѲ| ߹ۿ| AVۺ뾫Ʒ| AVAV˵| ѹۿ+ձ| ɫAAVѲ | ޾ƷҹҹҹŮ| һƵ| ëƬ߿ò | ؼһëƬѿ| רһ·߶| þһ| AVվ߹ۿ| Ѹ߹ۿ| 99Ƶ99߹ۿ| 1024Ʒ| ŷպĶ| ޹˾þ| A߹ۿ| ŮƷþþ2020| ɫƵ| ޾Ʒվ|