﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Samuel Learning-文章分类-05 微软编程</title><link>http://www.blogjava.net/nobody_am/category/2021.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 03 Feb 2012 15:40:22 GMT</lastBuildDate><pubDate>Fri, 03 Feb 2012 15:40:22 GMT</pubDate><ttl>60</ttl><item><title>加入域失败的处理方法</title><link>http://www.blogjava.net/nobody_am/articles/368741.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Thu, 19 Jan 2012 03:24:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/368741.html</guid><description><![CDATA[不能联系域domain的域控制器 
<p><br />注意: 此信息主要供网络管理员参考。如果您不是网络的管理员，请通知网络管理员您收到了此信息，记录在文件 C:\WINDOWS\debug\dcdiag.txt 中。</p>
<p>域名 domain 可能是一个 NetBIOS 域名。如果是这种情况，请确认域名用 WINS 正确注册。</p>
<p>如果您确认此名称不是一个 NetBIOS 域名，那么下面的信息将帮助您对 DNS 配置进行疑难解答:</p>
<p>当查询 DNS 以获得服务位置(SRV)资源记录时遇到下列错误，此资源记录用来为域 domain 定位域控制器:</p>
<p>错误是: "DNS 名称不存在。"<br />(错误代码 0x0000232B RCODE_NAME_ERROR)</p>
<p>查询是为 _ldap._tcp.dc._msdcs.domain 查询 SRV 记录</p>
<p>此错误的一般原因包括:</p>
<p>- DNS SRV 记录没有在 DNS 中注册。</p>
<p>- 下列区域的一个或多个不包括到它的子区域的代理:</p>
<p>domain<br />。 (根目录区域)</p>
<p>有关怎样更正此错误，请单击&#8220;帮助&#8221;。</p>
<p>重装客户机操作系统问题肯定解决．</p>
<p>事后问朋友得到解决方法如下：（时间关系没有做测试）</p>
<p>重新安装TCP/IP协议</p>
<p><u><span style="color: #0000ff"><strong>1、开始&#8212;&#8212;运行&#8212;&#8212;regedit.exe，打开注册表编辑器，删除以下两个键：</strong></span></u></p>
<p><u><span style="color: #0000ff"><strong>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock</strong></span></u></p>
<p><u><span style="color: #0000ff"><strong>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock2</strong></span></u></p>
<p><u><span style="color: #0000ff"><strong>&nbsp;</strong></span></u></p>
<p><u><span style="color: #0000ff"><strong>2、用记事本打开%winroot%\inf\nettcpip.inf文件，找到：</strong></span></u></p>
<p><u><span style="color: #0000ff"><strong>[MS_TCPIP.PrimaryInstall]</strong></span></u></p>
<p><u><span style="color: #0000ff"><strong>Characteristics = 0xa0 &lt;------把此处的0Xa0改为0x80 保存退出</strong></span></u></p>
<p><u><span style="color: #0000ff"><strong>&nbsp;</strong></span></u></p>
<p><u><span style="color: #0000ff"><strong>3、打开本地连接的TCP/IP属性---添加协议&#8212;&#8212;从磁盘&#8212;&#8212;浏览找到刚刚保存的nettcpip.inf(%winroot%\inf\nettcpip.inf)文件，然后选择&#8220;TCP/IP协议&#8221;（不是选择那个TCP/IP 版本6）。</strong></span></u></p>
<p><u><span style="color: #0000ff"><strong>经过这一步之后，又返回网络连接的窗口，但这个时候，那个&#8220;卸载&#8221;按钮已经是可用的了。点这个&#8220;卸载&#8221;按钮来把TCP/IP协议删除，然后重启一次机器。</strong></span></u></p>
<p><u><span style="color: #0000ff"><strong>&nbsp;</strong></span></u></p>
<p><u><span style="color: #0000ff"><strong>4、重启后再照着第3步，重新安装一次TCP/IP协议便可。</strong></span></u></p>
<p><u><span style="color: #0000ff"><strong>&nbsp;</strong></span></u></p>
<p><u><span style="color: #0000ff"><strong>5、再重启一次，这时应该可以了，可以照着需要，设置一下IP地址。</strong></span></u><a href="http://img.photo.163.com/GVyp_cIaTBtMox4gxdVwEQ==/195062158862016518.jpg"></a></p><img src ="http://www.blogjava.net/nobody_am/aggbug/368741.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2012-01-19 11:24 <a href="http://www.blogjava.net/nobody_am/articles/368741.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C#预编译指令示例</title><link>http://www.blogjava.net/nobody_am/articles/303313.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Mon, 23 Nov 2009 03:34:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/303313.html</guid><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Collections.Generic;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Linq;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Text;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">namespace</span><span style="color: #000000">&nbsp;ConsoleApplication2<br />
<img id="Codehighlighter1_117_450_Open_Image" onclick="this.style.display='none'; Codehighlighter1_117_450_Open_Text.style.display='none'; Codehighlighter1_117_450_Closed_Image.style.display='inline'; Codehighlighter1_117_450_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_117_450_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_117_450_Closed_Text.style.display='none'; Codehighlighter1_117_450_Open_Image.style.display='inline'; Codehighlighter1_117_450_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_117_450_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_117_450_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Program<br />
<img id="Codehighlighter1_141_448_Open_Image" onclick="this.style.display='none'; Codehighlighter1_141_448_Open_Text.style.display='none'; Codehighlighter1_141_448_Closed_Image.style.display='inline'; Codehighlighter1_141_448_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_141_448_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_141_448_Closed_Text.style.display='none'; Codehighlighter1_141_448_Open_Image.style.display='inline'; Codehighlighter1_141_448_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_141_448_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_141_448_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Main(</span><span style="color: #0000ff">string</span><span style="color: #000000">[]&nbsp;args)<br />
<img id="Codehighlighter1_191_442_Open_Image" onclick="this.style.display='none'; Codehighlighter1_191_442_Open_Text.style.display='none'; Codehighlighter1_191_442_Closed_Image.style.display='inline'; Codehighlighter1_191_442_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_191_442_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_191_442_Closed_Text.style.display='none'; Codehighlighter1_191_442_Open_Image.style.display='inline'; Codehighlighter1_191_442_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_191_442_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_191_442_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">#if</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;(DEBUG)&nbsp;&nbsp;&nbsp;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #000000">"</span><span style="color: #000000">in&nbsp;DEBUG&nbsp;model</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">#else</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #000000">"</span><span style="color: #000000">in&nbsp;RELEASE&nbsp;model</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">#endif</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.ReadLine();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span></div>
<br />
如上代码，在DEBUG下编译，默认会编译器会定义DEBUG<br />
<br />
自己定义预编译变量的实例如下：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">#define</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;DEBUG&nbsp;&nbsp;&nbsp;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">#define</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;VC_V7&nbsp;&nbsp;&nbsp;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;System;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;MyClass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_95_663_Open_Image" onclick="this.style.display='none'; Codehighlighter1_95_663_Open_Text.style.display='none'; Codehighlighter1_95_663_Closed_Image.style.display='inline'; Codehighlighter1_95_663_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_95_663_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_95_663_Closed_Text.style.display='none'; Codehighlighter1_95_663_Open_Image.style.display='inline'; Codehighlighter1_95_663_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span id="Codehighlighter1_95_663_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_95_663_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;Main()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_153_656_Open_Image" onclick="this.style.display='none'; Codehighlighter1_153_656_Open_Text.style.display='none'; Codehighlighter1_153_656_Closed_Image.style.display='inline'; Codehighlighter1_153_656_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_153_656_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_153_656_Closed_Text.style.display='none'; Codehighlighter1_153_656_Open_Image.style.display='inline'; Codehighlighter1_153_656_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_153_656_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_153_656_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">#if</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;(DEBUG&nbsp;&nbsp;&nbsp;&amp;&amp;&nbsp;&nbsp;&nbsp;!VC_V7)&nbsp;&nbsp;&nbsp;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #000000">"</span><span style="color: #000000">DEBUG&nbsp;&nbsp;&nbsp;is&nbsp;&nbsp;&nbsp;defined</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">#elif</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;(!DEBUG&nbsp;&nbsp;&nbsp;&amp;&amp;&nbsp;&nbsp;&nbsp;VC_V7)&nbsp;&nbsp;&nbsp;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #000000">"</span><span style="color: #000000">VC_V7&nbsp;&nbsp;&nbsp;is&nbsp;&nbsp;&nbsp;defined</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">#elif</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;(DEBUG&nbsp;&nbsp;&nbsp;&amp;&amp;&nbsp;&nbsp;&nbsp;VC_V7)&nbsp;&nbsp;&nbsp;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #000000">"</span><span style="color: #000000">DEBUG&nbsp;&nbsp;&nbsp;and&nbsp;&nbsp;&nbsp;VC_V7&nbsp;&nbsp;&nbsp;are&nbsp;&nbsp;&nbsp;defined</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">#else</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #000000">"</span><span style="color: #000000">DEBUG&nbsp;&nbsp;&nbsp;and&nbsp;&nbsp;&nbsp;VC_V7&nbsp;&nbsp;&nbsp;are&nbsp;&nbsp;&nbsp;not&nbsp;&nbsp;&nbsp;defined</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">#endif</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
<br />
<img src ="http://www.blogjava.net/nobody_am/aggbug/303313.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2009-11-23 11:34 <a href="http://www.blogjava.net/nobody_am/articles/303313.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>利用 CSS Friendly Control Adapters 将 ASP.NET 控件转为符合WEB标准标签控制</title><link>http://www.blogjava.net/nobody_am/articles/279037.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Sat, 30 May 2009 10:14:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/279037.html</guid><description><![CDATA[翻译自：<a href="http://www.asp.net/cssadapters/WalkThru/WalkThrough.aspx">http://www.asp.net/cssadapters/WalkThru/WalkThrough.aspx</a><br />
<br />
利用 CSS Friendly Control Adapters 将 ASP.NET 控件转为符合WEB标准的、有语意的HTML页面 CSS 样式表控制。<br />
例如，Menu、TreeView等控件均将输出&lt; table&gt;标签，而基于Web标准中的&#8220;有语意的&#8221;这一条，显然应该选择&lt;ul&gt;标签。<br />
而使用CSS Friendly Control Adapters 会将其转为使用嵌套的&lt;ul&gt;标签渲染，这被称为<a href="http://www.meyerweb.com/eric/css/edge/menus/demo.html">纯CSS menu</a>(<a href="http://www.meyerweb.com/eric/css/edge/menus/demo.html">http://www.meyerweb.com/eric/css/edge/menus/demo.html</a>). <br />
而对于以前不支持CSS的旧式浏览器，可以通过在配置文件中设定不同版本的浏览器使用不同的 Control Adapters<br />
来解决！这样对于PocketPC也能通过提供不同的Control Adapters来获得支持！<br />
<br />
== 下载和安装 ==<br />
<br />
访问站点：<a href="http://www.asp.net/cssadapters/">http://www.asp.net/cssadapters/</a>，单击&#8220;download source&#8221;按钮，下载ASPNETCssFriendlyAdapters.vsi。<br />
或者直接下载： <a href="http://download.microsoft.com/download/b/a/3/ba3aee5e-2e28-4056-9e71-036b2e7f58af/ASPNETCssFriendlyAdapters.vsi">http://download.microsoft.com/download/b/a/3/ba3aee5e-2e28-4056-9e71-036b2e7f58af/ASPNETCssFriendlyAdapters.vsi</a><br />
<br />
该
文件是一个 Visual Studio Content Installer 安装包，需要 Visual Web Developer&nbsp; or
Visual Studio 2005 方能运行解包。安装后将在你的Visual Studio中添加几个新的Web Site 模版。<br />
<br />
<img src="http://www.asp.net/cssadapters/images/WalkThru/VSContentInstaller.gif" alt="The Visual Studio Content Installer" /><br />
<br />
== 使用 ==<br />
进入 Visual Studio，选择 File -&gt; New Web Site 菜单项，选择新加入的&#8220;ASP.NET CSS Friendly Web Site&#8221;模版，开始你自己的CSS样式表站点设计，或者<br />
选择&#8220;Tutorial on ASP.NET CSS Friendly Control Adapters&#8221;模版建立教程站点，学习CSS Friendly sample adapters的功能。<br />
<br />
<img src="http://www.asp.net/cssadapters/images/WalkThru/VwdNewWebSiteCssAdapterTemplate.gif" alt="Create the new site using the CSS Adapter Template" /><br />
创建新站点后，你可以看看里面的readme.txt 文件，了解下注意事项。<br />
<img src="http://www.asp.net/cssadapters/images/WalkThru/KitReadmeFile.gif" alt="Be sure to read the readme.txt file" /><br />
<br />
== 运行 ==<br />
<br />
<img src="http://www.asp.net/cssadapters/images/WalkThru/SamplePagesNav.gif" alt="Main navigation menu for the kit" /><br />
<br />
所有的adapted controls的例子放在页顶部的Exmaples菜单下面的，第一个就是被转换的&lt;asp:menu&gt;菜单控件例子：用嵌套的&lt;ul&gt;标签代替了不规范的&lt;table&gt;标签。<br />
<br />
<img src="http://www.asp.net/cssadapters/images/WalkThru/SamplePagesNavGoToMenu.gif" alt="Navigating to the Menu sample" /><br />
<br />
点击进入菜单控件例子页面，你能更清晰的看到转换前后有什么不同：<br />
<br />
<br />
<img src="http://www.asp.net/cssadapters/images/WalkThru/KitSamplePageLayout.gif" alt="Layout of the kit's sample pages" /><br />
<br />
每一个例子都可以通过设置在是否使用转化接头(Adapters)之间切换：<br />
<br />
<img src="http://www.asp.net/cssadapters/images/WalkThru/KitSamplePageUseAdaptersToggle.gif" alt="Enable/disable adapters" /><br />
<br />
另外可以通过Theme Chooser在两个不同样式Theme(Basic, Enhanced)之间切换，样式文件在App_Themes中：<br />
<br />
<img src="http://www.asp.net/cssadapters/images/WalkThru/KitSamplePageUseThemeChooser.gif" alt="The Theme Chooser" /><br />
<br />
要联机查看每个例子的源程序，可以通过点击&#8220;view source code&#8221;按钮：<br />
<br />
<img dragover="true" src="http://www.asp.net/cssadapters/images/WalkThru/KitSamplePageSourceCodeLayout.gif" alt="Layout of the source code viewer page" /><br />
<br />
== 文件的组织 ==<br />
<br />
&nbsp;* 页面文件放在站点的根目录下面。<br />
&nbsp;* 专用代码放在App_Code\SiteSpecific 文件夹下，只对这个教程站点有用的，没有实用意义的。<br />
&nbsp;* CSS Friendly Control Adapters的源代码放在App_Code\Adapters下。<br />
&nbsp;* App_Themes: 存放了两个不同的Theme样式<br />
&nbsp;* bin目录下放的是一个显示高亮度语法的工具：<a href="http://www.wilcob.com/Wilco/Toolbox/SyntaxHighlighter.aspx">Wilco Bauer's handy utility</a>(<a href="http://www.wilcob.com/Wilco/Toolbox/SyntaxHighlighter.aspx">http://www.wilcob.com/Wilco/Toolbox/SyntaxHighlighter.aspx</a>)<br />
&nbsp;* App_data 存放的是某些例子使用的xml数据<br />
&nbsp;*
CSS 目录，存放的是与Theme无关的，被Control
Adapters使用的样式，这些样式包含的是插接的控件的behavior规范而不是界面表现。例如，对于pure css
菜单，有颜色，字体的界面规范；更重要的是还要有菜单如何工作的规范，比如如何显示菜单子项（当鼠标移上菜单的时候），如何隐藏菜单子项（当鼠标离开菜单
的时候），这些CSS的通用规范被放于这个文件夹。旗下的子文件夹browser-specific包含了针对特定浏览器的CSS规范。<br />
&nbsp;* App_Browsers 目录，设置使用CSS Friendly Control Adapters 的浏览器，你可以设置成不管浏览器的类型版本如何，始终使用这些Adapters；也可以设置成只针对特定的浏览器以及特定的版本才使用。<br />
&nbsp;*
Javascript目录，部分Control
Adapters使用了一些JS代码实现，这些JS代码被存放于此。如果要改变该路径的名称，你需要在web.config文件中的
appSettings节&nbsp; 添加/改变 CSSFriendly-JavaScript-Path 的值：&lt;add
key="CSSFriendly-JavaScript-Path" value="~/JavaScript" /&gt;<br />
&nbsp;* Membership 目录，演示了如何插接ASP.NET 2.0 的membership 控件。<br />
<br />
每一个转换的CSS控件都有自己的样式表，例如：&lt;asp:GridView&gt; 控件 has a style sheet named GridViewSample.css。该教程站点包含了两个Theme样式：<br />
Basic and Enhanced, 因此在 Basic 文件夹和 Enhanced 文件夹中均有 GridViewSample.css 文件。<br />
<br />
<img src="http://www.asp.net/cssadapters/images/WalkThru/VwdSolutionExplorerApp_ThemesFiles.gif" alt="Folders and files in the App_Themes folders" /><br />
<br />
本
教程站点在 App_Browsers 目录下的配置的.browse文件为
CSSFriendlyAdapters.browser，它配置为默认使用 CSS Friendly Control
Adapters，当然你页可以将refID 改为 IE6to9, Gecko, Opera8to9 等等。<br />
<br />
<img src="http://www.asp.net/cssadapters/images/WalkThru/VwdSolutionExplorerDotBrowserFile.gif" alt="The kit's .browser file" /><br />
<br />
运行了例子，了解了文件的组织和意义，现在该是创建自己的网站的时候。如何修改CSS改变控件的外观?<br />
让我们从menu讲起，首先我们修改下当鼠标移动到菜单上的颜色，在VS中，打开 App_Themes\Basic\MenuExample.css.文件：<br />
<br />
CSS<br />
<br />
.PrettyMenu ul.AspNet-Menu li:hover, <br />
.PrettyMenu ul.AspNet-Menu li.AspNet-Menu-Hover<br />
{<br />
&nbsp;&nbsp;&nbsp; background:#4682B3;<br />
}<br />
<br />
将该颜色改成其它的值如 #27408B。保存，然后刷新菜单控件例子页面：<br />
<br />
<img src="http://www.asp.net/cssadapters/images/WalkThru/ExperimentWithCss.gif" alt="The menu sample with the original and new background hover color" /><br />
<br />
还需要改变的是 .skin 文件，当浏览器不使用转换件的时候，控件默认会用该文件，打开 App_Themes\Basic\Basic.skin 文件，修改菜单的 DynamicHoverStyle 中的颜色值：<br />
<br />
<img src="http://www.asp.net/cssadapters/images/WalkThru/DynamicHoverStyle.gif" alt="The Basic.skin file" /><br />
<br />
=== 使用CSS转换件的空页面 ===<br />
<br />
&nbsp; &lt;%@ Page Language="C# or VB" %&gt;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;head runat="server"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;link runat="server" rel="stylesheet" href="~/CSS/Import.css" type="text/css" id="AdaptersInvariantImportCSS" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--[if lt IE 7]&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;link runat="server" rel="stylesheet"
href="~/CSS/BrowserSpecific/IEMenu6.css" type="text/css"
id="IEMenu6CSS" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;![endif]--&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;/head&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;body&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;form id="form1" runat="server"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- adapted control(s) here--&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/form&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/body&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/html&gt;<br />
<br />
Import.css 是 Theme无关的CSS，表示的是CSS转换件的 behavioral 规则。<br />
IEMenu6.css 是一个有条件的连接选项，当使用以前版本的IE浏览器需要。<br />
<br />
<br />
=== 打造Pure CSS 菜单页面 ===<br />
<br />
ASP.NET<br />
<br />
&lt;script runat="server"&gt;<br />
&nbsp;&nbsp;&nbsp; Public Sub OnClick(ByVal sender As Object, ByVal e As MenuEventArgs)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageLabel.Text = "You selected " &amp; e.Item.Text &amp; "."<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.Item.Selected = True<br />
&nbsp;&nbsp;&nbsp; End Sub<br />
&lt;/script&gt;<br />
<br />
&lt;asp:Menu
ID="EntertainmentMenu" runat="server" Orientation="Horizontal"
onmenuitemclick="OnClick" CssSelectorClass="SimpleEntertainmentMenu"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;Items&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:MenuItem Text="Music"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:MenuItem Text="Classical" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:MenuItem Text="Rock"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:MenuItem Text="Electric" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:MenuItem Text="Acoustical" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/asp:MenuItem&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:MenuItem Text="Jazz" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/asp:MenuItem&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:MenuItem Text="Movies" Selectable="false"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:MenuItem Text="Action" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:MenuItem Text="Drama" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:MenuItem Text="Musical" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/asp:MenuItem&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/Items&gt;<br />
&lt;/asp:Menu&gt;<br />
<br />
CSS<br />
<br />
&nbsp;.SimpleEntertainmentMenu .AspNet-Menu-Selected<br />
{<br />
&nbsp;&nbsp;&nbsp; border: solid 1px #00ff00 !important;<br />
}<br />
<br />
.SimpleEntertainmentMenu .AspNet-Menu-ChildSelected<br />
{<br />
&nbsp;&nbsp;&nbsp; border: solid 1px #ff0000 !important;<br />
}<br />
<br />
.SimpleEntertainmentMenu .AspNet-Menu-ParentSelected<br />
{<br />
&nbsp;&nbsp;&nbsp; border: solid 1px #0000ff !important;<br />
}<br />
<img src ="http://www.blogjava.net/nobody_am/aggbug/279037.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2009-05-30 18:14 <a href="http://www.blogjava.net/nobody_am/articles/279037.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DataGrid绑定DataSet总结</title><link>http://www.blogjava.net/nobody_am/articles/37517.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Sun, 26 Mar 2006 15:55:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/37517.html</guid><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 改变列宽和抬头DataGridTableStyle&nbsp;ts1&nbsp;=&nbsp;new&nbsp;DataGridTableStyle();ts1.MappingName&nbsp;=&nbsp;str_HistoryOrderTableName;this.dg_HistoryOrder.TableStyles.Add(ts1);&nbsp;this.dg_HistoryOrde...&nbsp;&nbsp;<a href='http://www.blogjava.net/nobody_am/articles/37517.html'>阅读全文</a><img src ="http://www.blogjava.net/nobody_am/aggbug/37517.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2006-03-26 23:55 <a href="http://www.blogjava.net/nobody_am/articles/37517.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在C#中如何读取配置文件</title><link>http://www.blogjava.net/nobody_am/articles/37343.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Sat, 25 Mar 2006 06:58:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/37343.html</guid><description><![CDATA[<span class=t18>1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 配置文件概述： <br>应用程序配置文件是标准的 XML 文件，XML 标记和属性是区分大小写的。它是可以按需要更改的，开发人员可以使用配置文件来更改设置，而不必重编译应用程序。配置文件的根节点是configuration。我们经常访问的是appSettings，它是由.Net预定义配置节。我们经常使用的配置文件的架构是象下面的形式。先大概有个印象，通过后面的实例会有一个比较清楚的认识。下面的&#8220;配置节&#8221;可以理解为进行配置一个XML的节点。
<p>&nbsp;常见配置文件模式：</p>
<p><br>&lt;configuration&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;configSections&gt;&nbsp;&nbsp;&nbsp; //配置节声明区域，包含配置节和命名空间声明<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;section&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //配置节声明<br>&nbsp;&nbsp;&nbsp;&nbsp; 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;sectionGroup&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //定义配置节组<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;section&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //配置节组中的配置节声明<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;appSettings&gt; //预定义配置节<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Custom element for configuration section&gt;&nbsp; //配置节设置区域</p>
<p>&nbsp;2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 只有appSettings节的配置文件及访问方法 </p>
<p>下面是一个最常见的应用程序配置文件的例子，只有appSettings节。</p>
<p><br>&lt;?xml version="1.0" encoding="utf-8"?&gt;<br>&lt;configuration&gt;<br>&nbsp;&nbsp;&nbsp; &lt;appSettings&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;add key="connectionstring" value="User ID=sa;Data Source=.;Password=;Initial Catalog=test;Provider=SQLOLEDB.1;" /&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;add key="TemplatePATH" value="Template" /&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/appSettings&gt;<br>&lt;/configuration&gt;</p>
<p>下面来看看这样的配置文件如何方法。</p>
<p>string _connectionString=ConfigurationSettings.AppSettings["connectionstring"];</p>
<p>使用ConfigurationSettings类的静态属性AppSettings就可以直接方法配置文件中的配置信息。这个属性的类型是NameValueCollection。</p>
<p>&nbsp;3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 自定义配置文件 <br>3.1　自定义配置节</p>
<p>一个用户自定义的配置节，在配置文件中分为两部分：一是在&lt;configSections&gt;&lt;/ configSections&gt;配置节中声明配置节（上面配置文件模式中的&#8220;&lt;section&gt;&#8221;），另外是在&lt;configSections&gt;&lt;/ configSections &gt;之后设置配置节（上面配置文件模式中的&#8220;&lt;Custom element for configuration section&gt;&#8221;），有点类似一个变量先声明，后使用一样。声明一个配置文件的语句如下：</p>
<p>&nbsp;&lt;section name=" " type=" "/&gt; <br>&lt;section&gt;：声明新配置节，即可创建新配置节。</p>
<p>name：自定义配置节的名称。</p>
<p>type：自定义配置节的类型，主要包括System.Configuration.SingleTagSectionHandler、System.Configuration.DictionarySectionHandler、System.Configuration.NameValueSectionHandler。</p>
<p>不同的type不但设置配置节的方式不一样，最后访问配置文件的操作上也有差异。下面我们就举一个配置文件的例子，让它包含这三个不同的type。</p>
<p>&lt;?xml version="1.0" encoding="utf-8" ?&gt;<br>&lt;configuration&gt;<br>&nbsp;&nbsp;&nbsp; &lt;configSections&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;section name="Test1" type="System.Configuration.SingleTagSectionHandler"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;section name="Test2" type="System.Configuration.DictionarySectionHandler"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;section name="Test3" type="System.Configuration.NameValueSectionHandler" /&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/configSections&gt;<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &lt;Test1 setting1="Hello" setting2="World"/&gt;<br>&nbsp;&nbsp;&nbsp; &lt;Test2&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;add key="Hello" value="World" /&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/Test2&gt;<br>&nbsp;&nbsp;&nbsp; &lt;Test3&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;add key="Hello" value="World" /&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/Test3&gt;&nbsp;&nbsp;&nbsp; <br>&lt;/configuration&gt;</p>
<p>我们对上面的自定义配置节进行说明。在声明部分使用&lt;section name="Test1" type="System.Configuration.SingleTagSectionHandler"/&gt;声明了一个配置节它的名字叫Test1，类型为SingleTagSectionHandler。在设置配置节部分使用&nbsp;&nbsp;&nbsp;&nbsp; &lt;Test1 setting1="Hello" setting2="World"/&gt;设置了一个配置节，它的第一个设置的值是Hello，第二个值是World，当然还可以有更多。其它的两个配置节和这个类似。 <br>下面我们看在程序中如何访问这些自定义的配置节。我们用过ConfigurationSettings类的静态方法GetConfig来获取自定义配置节的信息。</p>
<p>public static object GetConfig(string sectionName);</p>
<p>下面是访问这三个配置节的代码：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //访问配置节Test1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IDictionary IDTest1 = (IDictionary)ConfigurationSettings.GetConfig("Test1");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string str = (string)IDTest1["setting1"] +" "+(string)IDTest1["setting2"];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageBox.Show(str);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //输出Hello World</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //访问配置节Test1的方法2<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string[] values1=new string[IDTest1.Count];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IDTest1.Values.CopyTo(values1,0);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageBox.Show(values1[0]+" "+values1[1]);&nbsp;&nbsp;&nbsp; //输出Hello World<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //访问配置节Test2<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IDictionary IDTest2 = (IDictionary)ConfigurationSettings.GetConfig("Test2");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string[] keys=new string[IDTest2.Keys.Count];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string[] values=new string[IDTest2.Keys.Count];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IDTest2.Keys.CopyTo(keys,0);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IDTest2.Values.CopyTo(values,0);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageBox.Show(keys[0]+" "+values[0]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //访问配置节Test3<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NameValueCollection nc=(NameValueCollection)ConfigurationSettings.GetConfig("Test3");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageBox.Show(nc.AllKeys[0].ToString()+" "+nc["Hello"]);&nbsp;&nbsp;&nbsp; //输出Hello World</p>
<p>通过上面的代码我们可以看出，不同的type通过GetConfig返回的类型不同，具体获得配置内容的方式也不一样。 配置节处理程序<br>&nbsp;返回类型<br>&nbsp;<br>SingleTagSectionHandler<br>&nbsp;Systems.Collections.IDictionary<br>&nbsp;<br>DictionarySectionHandler<br>&nbsp;Systems.Collections.IDictionary<br>&nbsp;<br>NameValueSectionHandler<br>&nbsp;Systems.Collections.Specialized.NameValueCollection<br>&nbsp;</p>
<p>&nbsp; 3.2　自定义配置节组 <br>配置节组是使用&lt;sectionGroup&gt;元素，将类似的配置节分到同一个组中。配置节组声明部分将创建配置节的包含元素，在&lt;configSections&gt;元素中声明配置节组，并将属于该组的节置于&lt;sectionGroup&gt;元素中。下面是一个包含配置节组的配置文件的例子：</p>
<p>&nbsp;</p>
<p>&lt;?xml version="1.0" encoding="utf-8" ?&gt;<br>&lt;configuration&gt;<br>&nbsp;&nbsp;&nbsp; &lt;configSections&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;sectionGroup name="TestGroup"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;section name="Test" type="System.Configuration.NameValueSectionHandler"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/sectionGroup&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/configSections&gt;<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &lt;TestGroup&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Test&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;add key="Hello" value="World"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Test&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/TestGroup&gt;<br>&lt;/configuration&gt;<br>&nbsp;下面是访问这个配置节组的代码：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NameValueCollection nc=(NameValueCollection)ConfigurationSettings.GetConfig("TestGroup/Test");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageBox.Show(nc.AllKeys[0].ToString()+" "+nc["Hello"]);&nbsp;&nbsp;&nbsp; //输出Hello World</p>
</span>
<img src ="http://www.blogjava.net/nobody_am/aggbug/37343.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2006-03-25 14:58 <a href="http://www.blogjava.net/nobody_am/articles/37343.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>调用API设定手型光标</title><link>http://www.blogjava.net/nobody_am/articles/28610.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Thu, 19 Jan 2006 01:57:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/28610.html</guid><description><![CDATA[<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">Public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Const</SPAN><SPAN style="COLOR: #000000">&nbsp;HandCursor&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">32649</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000"><BR><IMG id=Codehighlighter1_48_387_Open_Image onclick="this.style.display='none'; Codehighlighter1_48_387_Open_Text.style.display='none'; Codehighlighter1_48_387_Closed_Image.style.display='inline'; Codehighlighter1_48_387_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_48_387_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_48_387_Closed_Text.style.display='none'; Codehighlighter1_48_387_Open_Image.style.display='inline'; Codehighlighter1_48_387_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Declare</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN id=Codehighlighter1_48_387_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">Function&nbsp;SetCursor()</SPAN><SPAN id=Codehighlighter1_48_387_Open_Text><SPAN style="COLOR: #0000ff">Function</SPAN><SPAN style="COLOR: #000000">&nbsp;SetCursor&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Lib</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">user32</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #0000ff">ByVal</SPAN><SPAN style="COLOR: #000000">&nbsp;hCursor&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000"><BR><IMG id=Codehighlighter1_127_387_Open_Image onclick="this.style.display='none'; Codehighlighter1_127_387_Open_Text.style.display='none'; Codehighlighter1_127_387_Closed_Image.style.display='inline'; Codehighlighter1_127_387_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_127_387_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_127_387_Closed_Text.style.display='none'; Codehighlighter1_127_387_Open_Image.style.display='inline'; Codehighlighter1_127_387_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Declare</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN id=Codehighlighter1_127_387_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">Function&nbsp;LoadCursor()</SPAN><SPAN id=Codehighlighter1_127_387_Open_Text><SPAN style="COLOR: #0000ff">Function</SPAN><SPAN style="COLOR: #000000">&nbsp;LoadCursor&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Lib</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">user32</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Alias</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">LoadCursorA</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #0000ff">ByVal</SPAN><SPAN style="COLOR: #000000">&nbsp;hInstance&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #0000ff">ByVal</SPAN><SPAN style="COLOR: #000000">&nbsp;lpCursorName&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_250_386_Open_Image onclick="this.style.display='none'; Codehighlighter1_250_386_Open_Text.style.display='none'; Codehighlighter1_250_386_Closed_Image.style.display='inline'; Codehighlighter1_250_386_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_250_386_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_250_386_Closed_Text.style.display='none'; Codehighlighter1_250_386_Open_Image.style.display='inline'; Codehighlighter1_250_386_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN id=Codehighlighter1_250_386_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">Sub&nbsp;g_setHandCursor()</SPAN><SPAN id=Codehighlighter1_250_386_Open_Text><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;g_setHandCursor()<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Dim</SPAN><SPAN style="COLOR: #000000">&nbsp;lHandle&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;lHandle&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;LoadCursor(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">,&nbsp;HandCursor)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;(lHandle&nbsp;</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000">&nbsp;SetCursor&nbsp;lHandle<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN></SPAN></DIV></SPAN></SPAN><img src ="http://www.blogjava.net/nobody_am/aggbug/28610.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2006-01-19 09:57 <a href="http://www.blogjava.net/nobody_am/articles/28610.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开机启动程序模块示例</title><link>http://www.blogjava.net/nobody_am/articles/27953.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Fri, 13 Jan 2006 09:00:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/27953.html</guid><description><![CDATA[<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">Option</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Explicit</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;Declare&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Function</SPAN><SPAN style="COLOR: #000000">&nbsp;RegOpenKeyEx&nbsp;Lib&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">advapi32.dll</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;Alias&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">RegOpenKeyExA</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;(ByVal&nbsp;hKey&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;lpSubKey&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;ulOptions&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;samDesired&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">,&nbsp;phkResult&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;Declare&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Function</SPAN><SPAN style="COLOR: #000000">&nbsp;RegSetValueEx&nbsp;Lib&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">advapi32.dll</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;Alias&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">RegSetValueExA</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;(ByVal&nbsp;hKey&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;lpValueName&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;Reserved&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;dwType&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">,&nbsp;lpData&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;Any,&nbsp;ByVal&nbsp;cbData&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;Declare&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Function</SPAN><SPAN style="COLOR: #000000">&nbsp;RegCloseKey&nbsp;Lib&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">advapi32.dll</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;(ByVal&nbsp;hKey&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Const</SPAN><SPAN style="COLOR: #000000">&nbsp;HKEY_CURRENT_USER&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">H80000001<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Const</SPAN><SPAN style="COLOR: #000000">&nbsp;HKEY_LOCAL_MACHINE&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">H80000002<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Const</SPAN><SPAN style="COLOR: #000000">&nbsp;KEY_SET_VALUE&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">H2<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Const</SPAN><SPAN style="COLOR: #000000">&nbsp;REG_SZ&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;SetStartUp(ByVal&nbsp;b_start&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Boolean</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">On</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Error</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">GoTo</SPAN><SPAN style="COLOR: #000000">&nbsp;ErrorHandle<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Dim</SPAN><SPAN style="COLOR: #000000">&nbsp;l_Ret&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">,&nbsp;l_Hnd&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">,&nbsp;l_Len&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Dim</SPAN><SPAN style="COLOR: #000000">&nbsp;str_Key&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">,&nbsp;str_Data&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;str_Key&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">software\microsoft\windows\currentversion\run</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;l_Ret&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;RegOpenKeyEx(HKEY_LOCAL_MACHINE,&nbsp;str_Key,&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">,&nbsp;KEY_SET_VALUE,&nbsp;l_Hnd)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;l_Ret&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;b_start&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str_Data&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;App.Path&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">\OAPOP.exe</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Else</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str_Data&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">End</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l_Len&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Len</SPAN><SPAN style="COLOR: #000000">(str_Data)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l_Ret&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;RegSetValueEx(l_Hnd,&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">OAPOP</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">,&nbsp;REG_SZ,&nbsp;ByVal&nbsp;str_Data,&nbsp;l_Len)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">End</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;l_Ret&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;RegCloseKey(l_Hnd)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Exit</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>ErrorHandle:<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;Err.Number&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g_str_ErrNumber&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;Err.Number<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g_str_ErrSource&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;Err.Source<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g_str_ErrDesc&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;Err.Description<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g_WriteLog&nbsp;g_str_ErrDesc<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Err.Clear<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">End</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN></DIV><img src ="http://www.blogjava.net/nobody_am/aggbug/27953.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2006-01-13 17:00 <a href="http://www.blogjava.net/nobody_am/articles/27953.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用DataAdapter的Update操作Insert,Update</title><link>http://www.blogjava.net/nobody_am/articles/24632.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Mon, 19 Dec 2005 06:20:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/24632.html</guid><description><![CDATA[<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #008000">//</span><span style="COLOR: #008000">构造DataTable</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataTable&nbsp;dt</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;DataTable(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">demo</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dt.Columns.Add(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">pkid</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">typeof</span><span style="COLOR: #000000">(System.Int32)).Caption</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">序号</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dt.Columns.Add(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">user_name</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #0000ff">typeof</span><span style="COLOR: #000000">(System.String)).Caption</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">用户名</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dt.Columns.Add(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">passwd</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">typeof</span><span style="COLOR: #000000">(System.String)).Caption</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">密码</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">填充DataTable</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataRow&nbsp;dr</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">dt.NewRow();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dr[</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">pkid</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dr[</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">user_name</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.txtName.Text;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dr[</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">passwd</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.txtPasswd.Text;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dt.Rows.Add(dr);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">构造DataSet</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataSet&nbsp;ds</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;DataSet();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">填充DataSet</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds.Tables.Add(dt);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;strConn</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Provider=SQLOLEDB;Data&nbsp;Source=localhost;Initial&nbsp;Catalog=myweb;user&nbsp;id=sa;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_594_1324_Open_Image onclick="this.style.display='none'; Codehighlighter1_594_1324_Open_Text.style.display='none'; Codehighlighter1_594_1324_Closed_Image.style.display='inline'; Codehighlighter1_594_1324_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_594_1324_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_594_1324_Closed_Text.style.display='none'; Codehighlighter1_594_1324_Open_Image.style.display='inline'; Codehighlighter1_594_1324_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_594_1324_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_594_1324_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OleDbConnection&nbsp;conn&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;OleDbConnection(strConn);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">参数在OleDbCommand或ODBCCommand中用?,SqlCommand中用@开头的参数,OracleCommand中的用:开头的参数</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OleDbCommand&nbsp;comm</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;OleDbCommand(</span><span style="COLOR: #000000">@"</span><span style="COLOR: #000000">insert&nbsp;into&nbsp;demo(user_name,passwd)&nbsp;values(?,?)&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,conn);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;comm.Parameters.Add(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">@user_name</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,OleDbType.VarChar,</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">user_name</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;comm.Parameters.Add(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">@passwd</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,OleDbType.VarChar,</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">passwd</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OleDbDataAdapter&nbsp;da&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;OleDbDataAdapter();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">DataAdapter中的DataTable与数据库中的表建立映射</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;da.TableMappings.Add(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">demo</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">demo</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设置InsertCommand</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;da.InsertCommand</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">comm;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">更新表</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;da.Update(ds,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">demo</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">刷新</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds.AcceptChanges();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox.Show(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Iniseted&nbsp;Success!</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;comm.Dispose();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.Close();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.Dispose();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">(Exception&nbsp;ex)<br><img id=Codehighlighter1_1352_1384_Open_Image onclick="this.style.display='none'; Codehighlighter1_1352_1384_Open_Text.style.display='none'; Codehighlighter1_1352_1384_Closed_Image.style.display='inline'; Codehighlighter1_1352_1384_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_1352_1384_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1352_1384_Closed_Text.style.display='none'; Codehighlighter1_1352_1384_Open_Image.style.display='inline'; Codehighlighter1_1352_1384_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1352_1384_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1352_1384_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;err</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">ex.Message;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<img src ="http://www.blogjava.net/nobody_am/aggbug/24632.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2005-12-19 14:20 <a href="http://www.blogjava.net/nobody_am/articles/24632.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VB让程序暂停一定时间</title><link>http://www.blogjava.net/nobody_am/articles/23786.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Wed, 14 Dec 2005 02:44:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/23786.html</guid><description><![CDATA[<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">Public</SPAN><SPAN style="COLOR: #000000">&nbsp;Declare&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Function</SPAN><SPAN style="COLOR: #000000">&nbsp;GetTickCount&nbsp;Lib&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">kernel32</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;()&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;DelayMs(ByVal&nbsp;ms&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Dim</SPAN><SPAN style="COLOR: #000000">&nbsp;t&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>t&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;GetTickCount()<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">While</SPAN><SPAN style="COLOR: #000000">&nbsp;(GetTickCount()&nbsp;</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">&nbsp;t)&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">&nbsp;ms<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>DoEvents<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Wend</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN></DIV><img src ="http://www.blogjava.net/nobody_am/aggbug/23786.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2005-12-14 10:44 <a href="http://www.blogjava.net/nobody_am/articles/23786.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>检查程序是否开启和结束程序的进程</title><link>http://www.blogjava.net/nobody_am/articles/23129.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Fri, 09 Dec 2005 05:45:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/23129.html</guid><description><![CDATA[Part 1 检查程序是否开启<BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;App.PrevInstance&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Msgbox</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">已经启动</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN></DIV><BR>Part 2 结束程序的进程
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;Declare&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Function</SPAN><SPAN style="COLOR: #000000">&nbsp;TerminateProcess&nbsp;Lib&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">kernel32</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;(ByVal&nbsp;hProcess&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;uExitCode&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;Declare&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Function</SPAN><SPAN style="COLOR: #000000">&nbsp;GetCurrentProcess&nbsp;Lib&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">kernel32</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;()&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>TerminateProcess&nbsp;GetCurrentProcess,&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN></DIV><img src ="http://www.blogjava.net/nobody_am/aggbug/23129.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2005-12-09 13:45 <a href="http://www.blogjava.net/nobody_am/articles/23129.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VB 读写文件</title><link>http://www.blogjava.net/nobody_am/articles/22955.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Thu, 08 Dec 2005 03:36:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/22955.html</guid><description><![CDATA[VB读写文件要用到以下语句： <BR>&nbsp;&nbsp;&nbsp;&nbsp;1、Open语句打开文件。 <BR>&nbsp;&nbsp;&nbsp;&nbsp;2、读文件使用Line Input、Input #，（以上为文本方式）和Get（以上为二进制方式）。 <BR>&nbsp;&nbsp;&nbsp;&nbsp;3、写文件使用Print #、Write（以上为文本方式）和Put（以上为二进制方式）。 <BR>&nbsp;&nbsp;&nbsp;&nbsp;4、Close语句关闭文件 <BR>&nbsp;&nbsp;&nbsp;&nbsp;5、二进制方式下移动文件位置使用Seek语句。 <BR>&nbsp;&nbsp;&nbsp;&nbsp;所有这些语句在VB的帮助中都有详细说明和例子。 <BR>&nbsp;&nbsp;&nbsp;&nbsp;<B>文本文件的示例：</B> <BR>&nbsp;&nbsp;&nbsp;&nbsp;<FONT face="Courier New" size=2><FONT color=#0000ff>Open </FONT>"TESTFILE" <FONT color=#0000ff>For </FONT>Output <FONT color=#0000ff>As </FONT>#1 ' 打开输出文件。 <BR>&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#0000ff>Print </FONT>#1, "This is a test" ' 将文本数据写入文件。 <BR>&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#0000ff>Print </FONT>#1, ' 将空白行写入文件。 <BR>&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#0000ff>Print </FONT>#1, "Zone 1"； Tab ； "Zone 2" ' 数据写入两个区（print zones）。 <BR>&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#0000ff>Print </FONT>#1, "Hello" ； " " ； "World" ' 以空格隔开两个字符串。 <BR>&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#0000ff>Print </FONT>#1, Spc(5) ； "5 leading spaces " ' 在字符串之前写入五个空格。 <BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#0000ff>Print </FONT>#1, Tab(10) ； "Hello" ' 将数据写在第十列。 <BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#008000>' 赋值 Boolean、Date、Null 及 Error 等。</FONT> <BR>&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#0000ff>Dim </FONT>MyBool, MyDate, MyNull, MyError <BR>&nbsp;&nbsp;&nbsp;&nbsp;MyBool = False : MyDate = #February 12, 1969# : MyNull = Null <BR>&nbsp;&nbsp;&nbsp;&nbsp;MyError = <FONT color=#0000ff>CVErr</FONT>(32767) <BR>&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#008000>' True、False、Null 及 Error 会根据系统的地区设置自动转换格式。</FONT> <BR>&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#008000>' 日期将以标准的短式日期的格式显示。</FONT> <BR>&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#0000ff>Print </FONT>#1, MyBool ； " is a Boolean value" <BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#0000ff>Print </FONT>#1, MyDate ； " is a date" <BR>&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#0000ff>Print </FONT>#1, MyNull ； " is a null value" <BR>&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#0000ff>Print </FONT>#1, MyError ； " is an error value" <BR>&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#0000ff>Close </FONT>#1 ' 关闭文件。 <BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT> <BR>&nbsp;&nbsp;&nbsp;&nbsp;<B>读文件示例</B> <BR>&nbsp;&nbsp;&nbsp;&nbsp;使用 Line Input # 语句从顺序文件中读入一行数据，并将该行数据赋予一个变量。本示例假设 TESTFILE 文件内含数行文本数据。 <BR>&nbsp;&nbsp;&nbsp;&nbsp;Dim TextLine <BR>&nbsp;&nbsp;&nbsp;&nbsp;Open "TESTFILE" For Input As #1 ' 打开文件。 <BR>&nbsp;&nbsp;&nbsp;&nbsp;Do While Not EOF(1) ' 循环至文件尾。 <BR>&nbsp;&nbsp;&nbsp;&nbsp; Line Input #1, TextLine ' 读入一行数据并将其赋予某变量。 <BR>&nbsp;&nbsp;&nbsp;&nbsp; Debug.Print TextLine ' 在调试窗口中显示数据。 <BR>&nbsp;&nbsp;&nbsp;&nbsp;Loop <BR>&nbsp;&nbsp;&nbsp;&nbsp;Close #1 ' 关闭文件。 <BR>&nbsp;&nbsp;&nbsp;&nbsp;你也可以在我们的“磁盘、文件和目录”栏目中找到许多这方面的问题和例子。 <img src ="http://www.blogjava.net/nobody_am/aggbug/22955.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2005-12-08 11:36 <a href="http://www.blogjava.net/nobody_am/articles/22955.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Winsock示例学习代码</title><link>http://www.blogjava.net/nobody_am/articles/22707.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Tue, 06 Dec 2005 05:47:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/22707.html</guid><description><![CDATA[Part 1 Server Form<BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">Option</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Explicit</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;m_iCurrent&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Integer</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Const</SPAN><SPAN style="COLOR: #000000">&nbsp;c_iMaxConnect&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Integer</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;StartListen()<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;sckProductServer(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">).State&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;sckClosed&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Me.check1.Caption&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">停止侦听</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Me.check1.Value&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sckProductServer(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">).Listen<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">MsgBox</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">{Server}开始侦听</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">End</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;StopListen()<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;sckProductServer(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">).State&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;sckListening&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Me.check1.Caption&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">开始侦听</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Me.check1.Value&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sckProductServer(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">).Close<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">MsgBox</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">{Server}停止侦听</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">End</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;StopAllConnect()<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Dim</SPAN><SPAN style="COLOR: #000000">&nbsp;i&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Integer</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">For</SPAN><SPAN style="COLOR: #000000">&nbsp;i&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">To</SPAN><SPAN style="COLOR: #000000">&nbsp;sckProductServer.UBound<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unload&nbsp;sckProductServer(i)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_iCurrent&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;m_iCurrent&nbsp;</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Call</SPAN><SPAN style="COLOR: #000000">&nbsp;StartListen<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">MsgBox</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">{Server}关闭Socket[</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">&nbsp;i&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">]</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Next</SPAN><SPAN style="COLOR: #000000">&nbsp;i<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;Check1_Click()<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;Me.check1.Value&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Call</SPAN><SPAN style="COLOR: #000000">&nbsp;StartListen<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Else</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Call</SPAN><SPAN style="COLOR: #000000">&nbsp;StopListen<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">End</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;Command1_Click()<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Call</SPAN><SPAN style="COLOR: #000000">&nbsp;StopAllConnect<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;Command2_Click()<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Dim</SPAN><SPAN style="COLOR: #000000">&nbsp;frmNewClient&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">New</SPAN><SPAN style="COLOR: #000000">&nbsp;frmClient<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;frmNewClient.Show<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;Form_Load()<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;m_iCurrent&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;sckProductServer(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">).Protocol&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;sckTCPProtocol<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;sckProductServer(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">).LocalPort&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">7777</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;sckProductServer_Close(Index&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Integer</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;sckProductServer(Index).Close<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Unload&nbsp;sckProductServer(Index)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;m_iCurrent&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;m_iCurrent&nbsp;</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Call</SPAN><SPAN style="COLOR: #000000">&nbsp;StartListen<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;sckProductServer_ConnectionRequest(Index&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Integer</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;requestID&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Dim</SPAN><SPAN style="COLOR: #000000">&nbsp;i&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Integer</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">For</SPAN><SPAN style="COLOR: #000000">&nbsp;i&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">To</SPAN><SPAN style="COLOR: #000000">&nbsp;m_iCurrent<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;Me.sckProductServer(i).State&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Exit</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">For</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Next</SPAN><SPAN style="COLOR: #000000">&nbsp;i<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;i&nbsp;</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;m_iCurrent&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;i&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;=</SPAN><SPAN style="COLOR: #000000">&nbsp;c_iMaxConnect&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_iCurrent&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;m_iCurrent&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load&nbsp;Me.sckProductServer(m_iCurrent)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Me.sckProductServer(m_iCurrent).Accept&nbsp;(requestID)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">MsgBox</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">{Server}Socket[</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">&nbsp;m_iCurrent&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">]&nbsp;开始连接</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;(i&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;c_iMaxConnect)&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Me.sckProductServer(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">).Close<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Call</SPAN><SPAN style="COLOR: #000000">&nbsp;StopListen<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">End</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Else</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Me.sckProductServer(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">).Close<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Call</SPAN><SPAN style="COLOR: #000000">&nbsp;StopListen<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">End</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Else</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Me.sckProductServer(i).Accept&nbsp;(requestID)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">MsgBox</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">{Server}Socket[</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">&nbsp;i&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">]&nbsp;开始连接</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">End</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;sckProductServer_DataArrival(Index&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Integer</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;bytesTotal&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Dim</SPAN><SPAN style="COLOR: #000000">&nbsp;strData&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Me.sckProductServer(Index).GetData&nbsp;strData<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">MsgBox</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">{Server}Socket[</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">&nbsp;Index&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">]接收数据</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">&nbsp;strData)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;sckProductServer(Index).SendData&nbsp;(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">OK</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">MsgBox</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">{Server}Socket[</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">&nbsp;Index&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">]回送OK</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;sckProductServer_Error(Index&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Integer</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;Number&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Integer</SPAN><SPAN style="COLOR: #000000">,&nbsp;Description&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;Scode&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;Source&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;HelpFile&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;HelpContext&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">,&nbsp;CancelDisplay&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Boolean</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;Index&nbsp;</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">'</SPAN><SPAN style="COLOR: #008000">sckProductServer(Index).Close</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unload&nbsp;sckProductServer(Index)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_iCurrent&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;m_iCurrent&nbsp;</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Call</SPAN><SPAN style="COLOR: #000000">&nbsp;StartListen<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">End</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN></DIV><IMG height=106 alt=serverSock.gif src="http://www.blogjava.net/images/blogjava_net/nobody_am/vbsock/serverSock.gif" width=409 border=0><BR>Part 2 Client Form<BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">Option</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Explicit</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;m_bConnected&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Boolean</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;Command1_Click()<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">On</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Error</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">GoTo</SPAN><SPAN style="COLOR: #000000">&nbsp;ErrorHandle<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;m_bConnected&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">True</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Me.sckClient.SendData&nbsp;Me.Text1.Text<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">MsgBox</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">{Client}发送数据</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">&nbsp;Me.Text1.Text)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Else</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">MsgBox</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">{Client}连接已断开</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">End</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Exit</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>ErrorHandle:<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">MsgBox</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">连接已断开</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;Form_Load()<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #008000">'</SPAN><SPAN style="COLOR: #008000">On&nbsp;Error&nbsp;Resume&nbsp;Next</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;Me.sckClient.State&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000">&nbsp;Me.sckClient.Close<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Me.sckClient.Protocol&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;sckTCPProtocol<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Me.sckClient.RemoteHost&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">localhost</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">'</SPAN><SPAN style="COLOR: #008000">网站服务器IP地址</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Me.sckClient.RemotePort&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">7777</SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">'</SPAN><SPAN style="COLOR: #008000">网站服务器监听端口</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Me.sckClient.Connect<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;Form_Unload(Cancel&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Integer</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;Me.sckClient.State&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000">&nbsp;Me.sckClient.Close<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #008000">'</SPAN><SPAN style="COLOR: #008000">函数中调用socket.close,否则事件一直发生</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;sckClient_Close()<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">MsgBox</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">{Client}关闭Socket</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;m_bConnected&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">False</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;Me.sckClient.Close<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;sckClient_Connect()<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">MsgBox</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">{Client}建立连接成功</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;m_bConnected&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">True</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;sckClient_DataArrival(ByVal&nbsp;bytesTotal&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Dim</SPAN><SPAN style="COLOR: #000000">&nbsp;strData&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Me.sckClient.GetData&nbsp;strData<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">MsgBox</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">{Client}接到数据：</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">&nbsp;strData)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;sckClient_Error(ByVal&nbsp;Number&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Integer</SPAN><SPAN style="COLOR: #000000">,&nbsp;Description&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;Scode&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;Source&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;HelpFile&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;HelpContext&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">,&nbsp;CancelDisplay&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Boolean</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;Me.sckClient.State&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000">&nbsp;Me.sckClient.Close<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN></DIV><IMG height=101 alt=ClientSock.gif src="http://www.blogjava.net/images/blogjava_net/nobody_am/vbsock/ClientSock.gif" width=434 border=0><img src ="http://www.blogjava.net/nobody_am/aggbug/22707.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2005-12-06 13:47 <a href="http://www.blogjava.net/nobody_am/articles/22707.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用recordSet填充DataGrid,FlexGrid示例代码</title><link>http://www.blogjava.net/nobody_am/articles/22149.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Thu, 01 Dec 2005 11:30:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/22149.html</guid><description><![CDATA[1 DataGrid
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">Dim</SPAN><SPAN style="COLOR: #000000">&nbsp;db_conn&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">New</SPAN><SPAN style="COLOR: #000000">&nbsp;Connection<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>db_conn.ConnectionString&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;MdlTranslate.ConnectionString()<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Dim</SPAN><SPAN style="COLOR: #000000">&nbsp;s_sql&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Dim</SPAN><SPAN style="COLOR: #000000">&nbsp;db_record&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">New</SPAN><SPAN style="COLOR: #000000">&nbsp;ADODB.Recordset<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>db_record.CursorLocation&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;adUseClient<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>s_sql&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Select&nbsp;*&nbsp;from&nbsp;tLicenseRecord</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;db_conn.State&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000">&nbsp;db_conn.Close<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>db_conn.Open<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>db_record.Open&nbsp;s_sql,&nbsp;db_conn,&nbsp;adOpenDynamic,&nbsp;adLockOptimistic<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Set</SPAN><SPAN style="COLOR: #000000">&nbsp;dgLicenseRecord.DataSource&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;db_record<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>dgLicenseRecord.Columns(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">PKID</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">).Caption&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">记录号</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>dgLicenseRecord.Columns(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Type</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">).Caption&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">类型</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>dgLicenseRecord.Columns(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Number</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">).Caption&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">点数</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>dgLicenseRecord.Columns(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">LicenseID</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">).Caption&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">序列号</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>dgLicenseRecord.Columns(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">ProductName</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">).Caption&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">软件产品名称</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>dgLicenseRecord.Columns(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">RemainNumber</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">).Caption&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">剩余点数</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>dgLicenseRecord.Columns(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Time</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">).Caption&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">时间</SPAN><SPAN style="COLOR: #000000">"</SPAN></DIV><BR>2 FlexGrid<BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Sub</SPAN><SPAN style="COLOR: #000000">&nbsp;FillGrid()<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">On</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Error</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Resume</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Next</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Dim</SPAN><SPAN style="COLOR: #000000">&nbsp;conn&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">New</SPAN><SPAN style="COLOR: #000000">&nbsp;Connection<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Dim</SPAN><SPAN style="COLOR: #000000">&nbsp;rs&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">New</SPAN><SPAN style="COLOR: #000000">&nbsp;Recordset<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;conn.ConnectionString&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;ConnectionString<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;conn.Open<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;rs.Source&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;m_strSQL&nbsp;</SPAN><SPAN style="COLOR: #008000">'</SPAN><SPAN style="COLOR: #008000">&nbsp;"select&nbsp;*&nbsp;from&nbsp;tLicenseRecord&nbsp;"</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Set</SPAN><SPAN style="COLOR: #000000">&nbsp;rs.ActiveConnection&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;conn<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;rs.Open<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Set</SPAN><SPAN style="COLOR: #000000">&nbsp;Me.dgLicenseRecord.DataSource&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;rs<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">'</SPAN><SPAN style="COLOR: #008000">Set&nbsp;Me.DataGrid1.DataSource&nbsp;=&nbsp;rs</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;rs.State&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;adStateOpen&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000">&nbsp;rs.Close<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;conn.Close<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Set</SPAN><SPAN style="COLOR: #000000">&nbsp;rs&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Nothing</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Set</SPAN><SPAN style="COLOR: #000000">&nbsp;conn&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Nothing</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Sub</SPAN></DIV><img src ="http://www.blogjava.net/nobody_am/aggbug/22149.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2005-12-01 19:30 <a href="http://www.blogjava.net/nobody_am/articles/22149.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VB读写INI文件</title><link>http://www.blogjava.net/nobody_am/articles/22030.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Wed, 30 Nov 2005 12:34:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/22030.html</guid><description><![CDATA[<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;Declare&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Function</SPAN><SPAN style="COLOR: #000000">&nbsp;GetPrivateProfileString&nbsp;Lib&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">kernel32</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;Alias&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">GetPrivateProfileStringA</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;(ByVal&nbsp;lpApplicationName&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;lpKeyName&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;Any,&nbsp;ByVal&nbsp;lpDefault&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;lpReturnedString&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;nSize&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;lpFileName&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Private</SPAN><SPAN style="COLOR: #000000">&nbsp;Declare&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Function</SPAN><SPAN style="COLOR: #000000">&nbsp;WritePrivateProfileString&nbsp;Lib&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">kernel32</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;Alias&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">WritePrivateProfileStringA</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;(ByVal&nbsp;lpApplicationName&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;lpKeyName&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;Any,&nbsp;ByVal&nbsp;lpString&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;Any,&nbsp;ByVal&nbsp;lpFileName&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Long</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #008000">'</SPAN><SPAN style="COLOR: #008000">以下两个函数,读/写ini文件,固定节点setting,in_key为写入/读取的主键</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>'</SPAN><SPAN style="COLOR: #008000">仅仅针对是非值</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>'</SPAN><SPAN style="COLOR: #008000">Y：yes,N：no,E：error</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Function</SPAN><SPAN style="COLOR: #000000">&nbsp;GetIniTF(ByVal&nbsp;In_Key&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Boolean</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">On</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Error</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">GoTo</SPAN><SPAN style="COLOR: #000000">&nbsp;GetIniTFErr<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;GetIniTF&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">True</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Dim</SPAN><SPAN style="COLOR: #000000">&nbsp;GetStr&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;GetStr&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;VBA.String(</SPAN><SPAN style="COLOR: #000000">128</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;GetPrivateProfileString&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Setting</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;In_Key,&nbsp;</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">,&nbsp;GetStr,&nbsp;</SPAN><SPAN style="COLOR: #000000">256</SPAN><SPAN style="COLOR: #000000">,&nbsp;App.Path&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">\config.ini</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;GetStr&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;VBA.Replace(GetStr,&nbsp;VBA.Chr(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">),&nbsp;</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;GetStr&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;GetIniTF&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">True</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;GetStr&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Else</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">GoTo</SPAN><SPAN style="COLOR: #000000">&nbsp;GetIniTFErr<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Exit</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Function</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>GetIniTFErr:<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;Err.Clear<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;GetIniTF&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">False</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;GetStr&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Function</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Function</SPAN><SPAN style="COLOR: #000000">&nbsp;WriteIniTF(ByVal&nbsp;In_Key&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;In_Data&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Boolean</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Boolean</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">On</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Error</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">GoTo</SPAN><SPAN style="COLOR: #000000">&nbsp;WriteIniTFErr<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;WriteIniTF&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">True</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;In_Data&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">True</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;WritePrivateProfileString&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Setting</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;In_Key,&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;App.Path&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">\config.ini</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Else</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;WritePrivateProfileString&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Setting</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;In_Key,&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;App.Path&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">\config.ini</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">End</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Exit</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Function</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>WriteIniTFErr:<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Err.Clear<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;WriteIniTF&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">False</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Function</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #008000">'</SPAN><SPAN style="COLOR: #008000">以下两个函数,读/写ini文件,不固定节点,in_key为写入/读取的主键</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>'</SPAN><SPAN style="COLOR: #008000">针对字符串值</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>'</SPAN><SPAN style="COLOR: #008000">空值表示出错</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Function</SPAN><SPAN style="COLOR: #000000">&nbsp;GetIniStr(ByVal&nbsp;AppName&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;In_Key&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">On</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Error</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">GoTo</SPAN><SPAN style="COLOR: #000000">&nbsp;GetIniStrErr<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;VBA.Trim(In_Key)&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">GoTo</SPAN><SPAN style="COLOR: #000000">&nbsp;GetIniStrErr<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">End</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Dim</SPAN><SPAN style="COLOR: #000000">&nbsp;GetStr&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;GetStr&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;VBA.String(</SPAN><SPAN style="COLOR: #000000">128</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;GetPrivateProfileString&nbsp;AppName,&nbsp;In_Key,&nbsp;</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">,&nbsp;GetStr,&nbsp;</SPAN><SPAN style="COLOR: #000000">256</SPAN><SPAN style="COLOR: #000000">,&nbsp;App.Path&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">\config.ini</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;GetStr&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;VBA.Replace(GetStr,&nbsp;VBA.Chr(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">),&nbsp;</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;GetStr&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">GoTo</SPAN><SPAN style="COLOR: #000000">&nbsp;GetIniStrErr<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Else</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;GetIniStr&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;GetStr<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;GetStr&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">End</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Exit</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Function</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>GetIniStrErr:<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;Err.Clear<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;GetIniStr&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;GetStr&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Function</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">Public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Function</SPAN><SPAN style="COLOR: #000000">&nbsp;WriteIniStr(ByVal&nbsp;AppName&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;In_Key&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">,&nbsp;ByVal&nbsp;In_Data&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">String</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Boolean</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">On</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Error</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">GoTo</SPAN><SPAN style="COLOR: #000000">&nbsp;WriteIniStrErr<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;WriteIniStr&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">True</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;VBA.Trim(In_Data)&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Or</SPAN><SPAN style="COLOR: #000000">&nbsp;VBA.Trim(In_Key)&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Or</SPAN><SPAN style="COLOR: #000000">&nbsp;VBA.Trim(AppName)&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">GoTo</SPAN><SPAN style="COLOR: #000000">&nbsp;WriteIniStrErr<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Else</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;WritePrivateProfileString&nbsp;AppName,&nbsp;In_Key,&nbsp;In_Data,&nbsp;App.Path&nbsp;</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">\config.ini</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">End</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Exit</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Function</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>WriteIniStrErr:<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;Err.Clear<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;WriteIniStr&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">False</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">End&nbsp;Function</SPAN></DIV><img src ="http://www.blogjava.net/nobody_am/aggbug/22030.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2005-11-30 20:34 <a href="http://www.blogjava.net/nobody_am/articles/22030.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我的VB托盘程序代码</title><link>http://www.blogjava.net/nobody_am/articles/18601.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Mon, 07 Nov 2005 08:33:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/18601.html</guid><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Form1 的VB代码Private&nbsp;bIsQuit&nbsp;As&nbsp;BooleanPrivate&nbsp;Sub&nbsp;Form_Load()&nbsp;&nbsp;bIsQuit&nbsp;=&nbsp;FalseEnd&nbsp;SubPrivate&nbsp;Sub&nbsp;Form_Unload(Cancel&nbsp;As&nbsp;Integer)&n...&nbsp;&nbsp;<a href='http://www.blogjava.net/nobody_am/articles/18601.html'>阅读全文</a><img src ="http://www.blogjava.net/nobody_am/aggbug/18601.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2005-11-07 16:33 <a href="http://www.blogjava.net/nobody_am/articles/18601.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VB托盘程序详解(5)[转载] </title><link>http://www.blogjava.net/nobody_am/articles/18577.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Mon, 07 Nov 2005 06:50:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/18577.html</guid><description><![CDATA[为了学习方便，以下提供了源代码：<BR><BR>
<TABLE width=600 align=center bgColor=#ebe9eb border=0>
<TBODY>
<TR>
<TD>'---------------------------------------------<BR>' 使用系统托盘程序演示<BR>'---------------------------------------------<BR>'程序说明：<BR>' 这是一个比较完整的使用系统托盘的程序实例，包括<BR>'了：添加托盘图标，删除托盘图标，动态改变托盘图标，<BR>'为托盘图标添加浮动提示信息，实现托盘图标的鼠标右键<BR>'菜单等内容。<BR>'-------名称-------------------作用------------<BR>' Form1 主窗体<BR>' mnuFile,mnuFileExit 文件菜单，菜单项<BR>' mnuTray,mnuTrayClose... 托盘区右键菜单，菜单项<BR>'---------------------------------------------<BR><BR>Option Explicit<BR><BR>'LastState变量的作用是标示主窗体原有状态<BR>Public LastState As Integer<BR><BR>'【VB声明】<BR>' Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long<BR><BR>'【说明】<BR>' 调用一个窗口的窗口函数，将一条消息发给那个窗口。除非消息处理完毕，否则该函数不会返回。SendMessageBynum，<BR>' SendMessageByString是该函数的“类型安全”声明形式<BR><BR>'【返回值】<BR>' Long，由具体的消息决定<BR><BR>'【参数表】<BR>' hwnd ----------- Long，要接收消息的那个窗口的句柄<BR><BR>' wMsg ----------- Long，消息的标识符<BR><BR>' wParam --------- Long，具体取决于消息<BR><BR>' lParam --------- Any，具体取决于消息<BR>Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal HWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long<BR><BR>'表示发送的是系统命令<BR>Private Const WM_SYSCOMMAND = &amp;H112<BR>Private Const SC_MOVE = &amp;HF010&amp;<BR>Private Const SC_RESTORE = &amp;HF120&amp;<BR>Private Const SC_SIZE = &amp;HF000&amp;<BR><BR>'当主窗体加载时<BR>Private Sub Form_Load()<BR><BR>'窗体的WindowState属性，返回或设置一个值，该值用来指定在运行时窗体窗口的可视状态<BR>'vbNormal 0 （缺省值）正常 。<BR>'VbMinimized 1 最小化（最小化为一个图标）<BR>'VbMaximized 2 最大化（扩大到最大尺寸）<BR>If WindowState = vbMinimized Then<BR>LastState = vbNormal<BR>Else<BR>LastState = WindowState<BR>End If<BR><BR>'将图标添加到托盘的函数，参见模块中的解释<BR>'注意了这是从主程序到模块的入口，本例中并没有直接调用Shell_NotifyIcon函数<BR>AddToTray Me, mnuTray<BR><BR>SetTrayTip "托盘图标演示，点击右键弹出菜单"<BR>End Sub<BR><BR>'在主窗体Form1大小改变时，相应改变右键菜单mnuTray的菜单项的可用属性Enabled<BR>Private Sub Form_Resize()<BR>Select Case WindowState<BR><BR>'如果窗体最小化了，把菜单项“最大化”“恢复”设为可用，<BR>'而把“最小化”“移动”“大小”三项设为不可用.<BR>'如果这时在托盘图标上点击鼠标右键，会发现不可用项变为灰色<BR>Case vbMinimized<BR>mnuTrayMaximize.Enabled = True<BR>mnuTrayMinimize.Enabled = False<BR>mnuTrayMove.Enabled = False<BR>mnuTrayRestore.Enabled = True<BR>mnuTraySize.Enabled = False<BR><BR>'窗体最大化时<BR>Case vbMaximized<BR>mnuTrayMaximize.Enabled = False<BR>mnuTrayMinimize.Enabled = True<BR>mnuTrayMove.Enabled = False<BR>mnuTrayRestore.Enabled = True<BR>mnuTraySize.Enabled = False<BR><BR>'一般状态下<BR>Case vbNormal<BR>mnuTrayMaximize.Enabled = True<BR>mnuTrayMinimize.Enabled = True<BR>mnuTrayMove.Enabled = True<BR>mnuTrayRestore.Enabled = False<BR>mnuTraySize.Enabled = True<BR>End Select<BR><BR>If WindowState &lt;&gt; vbMinimized Then LastState = WindowState<BR>End Sub<BR><BR>'保证在程序退出时删除托盘图标<BR>Private Sub Form_Unload(Cancel As Integer)<BR>RemoveFromTray<BR>End Sub<BR><BR>'“文件”菜单的“退出”项被点击时<BR>Private Sub mnuFileExit_Click()<BR>Unload Me<BR>End Sub<BR><BR>'托盘图标右键菜单上的“退出”项被点击时<BR>Private Sub mnuTrayClose_Click()<BR>Unload Me<BR>End Sub<BR><BR>'托盘图标右键菜单上的“最大化”项被点击时<BR>Private Sub mnuTrayMaximize_Click()<BR>WindowState = vbMaximized<BR>End Sub<BR><BR>'托盘图标右键菜单上的“最小化”项被点击时<BR>Private Sub mnuTrayMinimize_Click()<BR>WindowState = vbMinimized<BR>End Sub<BR><BR>'托盘图标右键菜单上的“移动”项被点击时<BR>Private Sub mnuTrayMove_Click()<BR>SendMessage HWnd, WM_SYSCOMMAND, _<BR>SC_MOVE, 0&amp;<BR>End Sub<BR><BR>'托盘图标右键菜单上的“恢复”项被点击时<BR>Private Sub mnuTrayRestore_Click()<BR>SendMessage HWnd, WM_SYSCOMMAND, _<BR>SC_RESTORE, 0&amp;<BR>End Sub<BR><BR>'托盘图标右键菜单上的“退出”项被点击时<BR>Private Sub mnuTraySize_Click()<BR>SendMessage HWnd, WM_SYSCOMMAND, _<BR>SC_SIZE, 0&amp;<BR>End Sub<BR>'-----------------------------------------<BR>'以下为模块中的代码：<BR>'-----------------------------------------<BR>Option Explicit<BR><BR>Public OldWindowProc As Long<BR>Public TheForm As Form<BR>Public TheMenu As Menu<BR>'<B>【VB声明】</B><BR>'Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal HWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long<BR><BR>'【说明】<BR>' 此函数发送消息到一个窗口过程<BR><BR>'<B>【返回值】</B><BR>' Long，依据发送的消息不同而变化<BR><BR>'<B>【参数表】</B><BR>' lpPrevWndFunc----- Long，原来的窗口过程地址<BR><BR>' HWnd-------------- Long，窗口句柄<BR><BR>' Msg -------------- Long，发送的消息<BR><BR>' wParam ----------- Long，消息类型，参考wParam参数表<BR><BR>' lParam ----------- Long，依据wParam参数的不同而不同<BR><BR>Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal HWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long<BR><BR>'<B>【VB声明】</B><BR>' Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long<BR><BR>'<B>【说明】</B><BR>' 在窗口结构中为指定的窗口设置信息<BR><BR>'<B>【返回值】</B><BR>' Long，指定数据的前一个值<BR><BR>'<B>【参数表】</B><BR>' hwnd ----------- Long，欲为其取得信息的窗口的句柄<BR><BR>' nIndex --------- Long，请参考GetWindowLong函数的nIndex参数的说明<BR><BR>' dwNewLong ------ Long，由nIndex指定的窗口信息的新值<BR>Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal HWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long<BR><BR>'<B>【VB声明】</B><BR>'Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long<BR><BR>'<B>【说明】</B><BR><BR>'<B>【参数表】</B><BR>'参数dwMessage ---- 为消息设置值，它可以是以下的几个常数值：0、1、2<BR><BR>'NIM_ADD = 0 加入图标到系统状态栏中<BR>'NIM_MODIFY = 1 修改系统状态栏中的图标<BR>'NIM_DELETE = 2 删除系统状态栏中的图标<BR><BR>'参数LpData ---- 用以传入NOTIFYICONDATA数据结构变量，我们也需要在"模块"中定义其结构如下：<BR><BR>'Type NOTIFYICONDATA<BR>' cbSize As Long 需填入NOTIFYICONDATA数据结构的长度<BR>' HWnd As Long 设置成窗口的句柄<BR>' Uid As Long 为图标所设置的ID值<BR>' UFlags As Long 用来设置以下三个参数uCallbackMessage、hIcon、szTip是否有效<BR>' UCallbackMessage As Long 消息编号<BR>' HIcon As Long 显示在状态栏上的图标<BR>' SzTip As String * 64 提示信息<BR>'End Type<BR><BR>'---- 其中参数uCallbackMessage、hIcon、szTip也应在模块中声明为以下的常量：<BR>'Public Const NIF_MESSAGE = 1<BR>'Public Const NIF_ICON = 2<BR>'Public Const NIF_TIP = 4<BR><BR>Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long<BR><BR><BR>Public Const WM_USER = &amp;H400<BR>Public Const WM_LBUTTONUP = &amp;H202<BR>Public Const WM_MBUTTONUP = &amp;H208<BR>Public Const WM_RBUTTONUP = &amp;H205<BR>Public Const TRAY_CALLBACK = (WM_USER + 1001&amp;)<BR>Public Const GWL_WNDPROC = (-4)<BR>Public Const GWL_USERDATA = (-21)<BR>Public Const NIF_ICON = &amp;H2<BR>Public Const NIF_TIP = &amp;H4<BR>Public Const NIM_ADD = &amp;H0<BR>Public Const NIF_MESSAGE = &amp;H1<BR>Public Const NIM_MODIFY = &amp;H1<BR>Public Const NIM_DELETE = &amp;H2<BR><BR>'记录 设置托盘图标的数据 的数据类型NOTIFYICONDATA<BR>Public Type NOTIFYICONDATA<BR>cbSize As Long<BR>HWnd As Long<BR>Uid As Long<BR>UFlags As Long<BR>UCallbackMessage As Long<BR>HIcon As Long<BR>SzTip As String * 64<BR>End Type<BR><BR>'TheData变量记录设置托盘图标的数据<BR>Private TheData As NOTIFYICONDATA<BR>' *********************************************<BR>' 新的窗口过程--主程序中采用SetWindowLong函数改变了窗口函数的地址，消息转向由NewWindowProc处理<BR>' *********************************************<BR>Public Function NewWindowProc(ByVal HWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long<BR><BR>'如果用户点击了托盘中的图标，则进行判断是点击了左键还是右键<BR>If Msg = TRAY_CALLBACK Then<BR>'如果点击了左键<BR>If lParam = WM_LBUTTONUP Then<BR>'而这时窗体的状态是最小化时<BR>If TheForm.WindowState = vbMinimized Then _<BR>'恢复到最小化前的窗体状态<BR>TheForm.WindowState = TheForm.LastState<BR>TheForm.SetFocus<BR>Exit Function<BR>End If<BR>End If<BR>'如果点击了右键<BR>If lParam = WM_RBUTTONUP Then<BR>'则弹出右键菜单<BR>TheForm.PopupMenu TheMenu<BR>Exit Function<BR>End If<BR>End If<BR><BR>'如果是其他类型的消息则传递给原有默认的窗口函数<BR>NewWindowProc = CallWindowProc(OldWindowProc, HWnd, Msg, wParam, lParam)<BR>End Function<BR>' *********************************************<BR>' 把主窗体的图标（Form1.icon属性可改变）添加到托盘中<BR>' *********************************************<BR>Public Sub AddToTray(frm As Form, mnu As Menu)<BR><BR>'保存当前窗体和菜单信息<BR>Set TheForm = frm<BR>Set TheMenu = mnu<BR><BR>'GWL_WNDPROC获得该窗口的窗口函数的地址<BR>OldWindowProc = SetWindowLong(frm.HWnd, GWL_WNDPROC, AddressOf NewWindowProc)<BR><BR>'知识点滴：HWnd属性<BR>'返回窗体或控件的句柄。语法: object.HWnd<BR>'说明:Microsoft Windows 运行环境，通过给应用程序中的每个窗体和控件<BR>'分配一个句柄（或 hWnd）来标识它们。hWnd 属性用于Windows API调用。<BR><BR>'将主窗体图标添加在托盘中<BR>With TheData<BR>.Uid = 0 '忘了吗？参考一下前面内容,Uid图标的序号，做动画图标有用<BR>.HWnd = frm.HWnd<BR>.cbSize = Len(TheData)<BR>.HIcon = frm.Icon.Handle<BR>.UFlags = NIF_ICON '指明要对图标进行设置<BR>.UCallbackMessage = TRAY_CALLBACK<BR>.UFlags = .UFlags Or NIF_MESSAGE '指明要设置图标或返回信息给主窗体，此句不能省去<BR>.cbSize = Len(TheData) '为什么呢？我们需要在添加图标的同时，让其返回信息<BR>End With '给主窗体，Or的意思是同时进行设置和返回消息<BR>Shell_NotifyIcon NIM_ADD, TheData '根据前面定义NIM_ADD，设置为“添加模式”<BR>End Sub<BR>' *********************************************<BR>' 删除系统托盘中的图标<BR>' *********************************************<BR>Public Sub RemoveFromTray()<BR>'删除托盘中的图标<BR>With TheData<BR>.UFlags = 0<BR>End With<BR>Shell_NotifyIcon NIM_DELETE, TheData '根据前面定义NIM_DELETE，设置为“删除模式”<BR><BR>'恢复原有的设置<BR>SetWindowLong TheForm.HWnd, GWL_WNDPROC, OldWindowProc<BR>End Sub<BR>' *********************************************<BR>' 为托盘中的图标加上浮动提示（也就是鼠标移上去时出现的提示字条）<BR>' *********************************************<BR>Public Sub SetTrayTip(tip As String)<BR>With TheData<BR>.SzTip = tip &amp; vbNullChar<BR>.UFlags = NIF_TIP '指明要对浮动提示进行设置<BR>End With<BR>Shell_NotifyIcon NIM_MODIFY, TheData '根据前面定义NIM_MODIFY，设置为“修改模式”<BR>End Sub<BR>' *********************************************<BR>' 设置托盘的图标（在本例中没有用到，如果要动态改变托盘内显示的图标，它非常有用）<BR>' 例如：1、显示动画图标（方法你一定猜到了，对！使用Timer控件，不断调用此过程，注意把动画放在pic数组中）<BR>' 2、程序处于不同状态时，显示不同的图标，方法是类似的<BR>' 有兴趣的话试一试吧。<BR>' *********************************************<BR>Public Sub SetTrayIcon(pic As Picture)<BR>'判断一下pic中存放的是不是图标<BR>If pic.Type &lt;&gt; vbPicTypeIcon Then Exit Sub<BR><BR>'更换图标为pic中存放的图标<BR>With TheData<BR>.HIcon = pic.Handle<BR>.UFlags = NIF_ICON<BR>End With<BR>Shell_NotifyIcon NIM_MODIFY, TheData<BR>End Sub</TD></TR></TBODY></TABLE><BR><BR><A HREF="/nobody_am/articles/18573.html">VB托盘程序详解(1)[转载]</A><BR><A HREF="/nobody_am/articles/18574.html">VB托盘程序详解(2)[转载]</A><BR><A HREF="/nobody_am/articles/18575.html">VB托盘程序详解(3)[转载]</A><BR><A HREF="/nobody_am/articles/18576.html">VB托盘程序详解(4)[转载]</A><BR><A HREF="/nobody_am/articles/18577.html">VB托盘程序详解(5)[转载]</A><img src ="http://www.blogjava.net/nobody_am/aggbug/18577.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2005-11-07 14:50 <a href="http://www.blogjava.net/nobody_am/articles/18577.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VB托盘程序详解(4)[转载] </title><link>http://www.blogjava.net/nobody_am/articles/18576.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Mon, 07 Nov 2005 06:50:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/18576.html</guid><description><![CDATA[我们要自己写程序来处理消息，必须先更改窗口的属性，从原来由默认的窗口过程来处理消息变成由我们自己写的消息处理过程来处理消息。方法是使用SetWindowLong函数来取得默认窗口过程的地址，然后转向为我们自己写的窗口过程的地址，具体的实现方法如下代码：<BR><BR>
<TABLE width=600 align=center bgColor=#ebe9eb border=0>
<TBODY>
<TR>
<TD>'GWL_WNDPROC获得该窗口的窗口过程的地址，AddressOf是取址函数，NewWindowProc是我们写的过程<BR>OldWindowProc = SetWindowLong(frm.HWnd, GWL_WNDPROC, AddressOf <BR>　　　　　　　　　　　　　　　NewWindowProc)</TD></TR></TBODY></TABLE>　 <BR>　　然后在NewWindowProc函数中写入如下代码，需要注意的是下面代码中红色的TRAY_CALLBACK是由托盘区图标传来的消息，要让托盘图标传回消息，必须在添加托盘图标时指定：<BR><BR>
<TABLE width=600 align=center bgColor=#ebe9eb border=0>
<TBODY>
<TR>
<TD>　　　Public Function NewWindowProc(ByVal HWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long <BR>　　　'如果用户点击了托盘中的图标，则进行判断是点击了左键还是右键<BR>　　　If Msg = TRAY_CALLBACK Then <BR>　　　　　'如果点击了左键 <BR>　　　　　If lParam = WM_LBUTTONUP Then<BR>　　　　　　　'而这时窗体的状态是最小化时 <BR>　　　　　　　If TheForm.WindowState = vbMinimized Then _ <BR>　　　　　　　　'恢复到最小化前的窗体状态 <BR>　　　　　　　　　　TheForm.WindowState = TheForm.LastState <BR>　　　　　　　　　　TheForm.SetFocus<BR>　　　　　　　　　　Exit Function<BR>　　　　　　　End If <BR>　　　　　End If <BR>　　　　　'如果点击了右键 <BR>　　　　　If lParam = WM_RBUTTONUP Then <BR>　　　　　　　'则弹出右键菜单 <BR>　　　　　　　TheForm.PopupMenu TheMenu <BR>　　　　　　　Exit Function <BR>　　　　　End If <BR>　　　End If <BR>　　　'如果是其他类型的消息则传递给原有默认的窗口函数<BR>　　　NewWindowProc = CallWindowProc(OldWindowProc, HWnd, Msg, wParam, lParam) <BR>　　　End Function </TD></TR></TBODY></TABLE><BR>　　这样我们就取得并处理了来自托盘图标的消息，现在的问题是在鼠标右键菜单弹出后，怎么控制程序主窗体的状态，这时我们需要用到SendMessage函数来向主窗体发送最大化、最小化、关闭、移动等消息，具体的代码实现如下，其中HWnd是主窗体的句柄，WM_SYSCOMMAND表示发送的是系统控制类的消息，SC_MOVE、SC_SIZE、SC_RESTORE便是要发送的消息了：<BR><BR>
<TABLE width=600 align=center bgColor=#ebe9eb border=0>
<TBODY>
<TR>
<TD>　　　'托盘图标右键菜单上的“移动”项被点击时<BR>　　　Private Sub mnuTrayMove_Click() <BR>　　　　　SendMessage HWnd, WM_SYSCOMMAND, SC_MOVE, 0&amp; <BR>　　　End Sub <BR>　　　'托盘图标右键菜单上的“恢复”项被点击时 <BR>　　　Private Sub mnuTrayRestore_Click() <BR>　　　　　SendMessage HWnd, WM_SYSCOMMAND, SC_RESTORE, 0&amp; <BR>　　　End Sub <BR>　　　'托盘图标右键菜单上的“退出”项被点击时 <BR>　　　Private Sub mnuTraySize_Click() <BR>　　　　　SendMessage HWnd, WM_SYSCOMMAND, SC_SIZE, 0&amp; <BR>　　　End Sub </TD></TR></TBODY></TABLE><BR>　　最后要提醒你，在程序退出时一定要把窗口过程的地址恢复为默认值，同时把托盘图标移去哦。<BR><BR><A HREF="/nobody_am/articles/18573.html">VB托盘程序详解(1)[转载]</A><BR><A HREF="/nobody_am/articles/18574.html">VB托盘程序详解(2)[转载]</A><BR><A HREF="/nobody_am/articles/18575.html">VB托盘程序详解(3)[转载]</A><BR><A HREF="/nobody_am/articles/18576.html">VB托盘程序详解(4)[转载]</A><BR><A HREF="/nobody_am/articles/18577.html">VB托盘程序详解(5)[转载]</A><img src ="http://www.blogjava.net/nobody_am/aggbug/18576.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2005-11-07 14:50 <a href="http://www.blogjava.net/nobody_am/articles/18576.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VB托盘程序详解(3)[转载] </title><link>http://www.blogjava.net/nobody_am/articles/18575.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Mon, 07 Nov 2005 06:49:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/18575.html</guid><description><![CDATA[如果你下载(源程序下载)并运行这个例程序，你会发现如果我们在托盘图标上点击鼠标右键，则会弹出一个右键菜单。如果点击相应的菜单项，程序主窗体会随之变化，这样就可以控制程序的行为。而如果当主窗体处于最小化状态时，我们在托盘图标上点击左键，窗体会恢复到原来的大小。其实实现上述的功能都要依赖于WINDOWS操作系统的消息机制，要完全弄懂这个机制挺不容易的，但是我们可以按下述文字来理解它。<BR><BR>　　把WINDOWS操作系统看作人的大脑，它接收、处理、并发送各种各样的信息给我们的各个器官(当然是比喻各个应用程序了)，也就是说它是消息的中枢。而每个应用程序(甚至每一个按钮、标签、窗体等等统称为窗口)在运行时都会被分配一个窗口过程WINDOWPROC，由这个窗口过程来接收和处理操作系统发来的消息(实际上存在一个消息队列)，通常情况下这个窗口过程是由操作系统指定的，它会自动的响应并处理一些WINDOWS消息(如窗体移动、最大化、最小化、错误信息等)。好，到这我们先停一下，提出一个疑问，这些消息能否由我们自己写程序来处理呢？答案是肯定的，不过还得借助API函数的威力了，怎么用？我们还是先看看这些API函数的定义和参数吧。 <BR><BR>　　程序中用到了SendMessage、CallWindowProc、SetWindowLong等API函数，其中SendMessage函数的作用是将一条消息发给某个窗口；CallWindowProc函数用来发送消息到一个窗口过程；而使用SetWindowLong函数来为窗口结构中为指定的窗口设置属性。使用API函数之前必须先在程序中声明如下：<BR><BR>
<TABLE width=600 align=center bgColor=#ebe9eb border=0>
<TBODY>
<TR>
<TD>　Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal HWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long<BR><BR>　Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal HWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long <BR><BR>　Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal HWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long </TD></TR></TBODY></TABLE>　<BR><BR>　　其中各参数的意义如下表: <BR><BR>　　CallWindowProc函数<BR><BR>
<TABLE cellSpacing=0 width=600 align=center border=1>
<TBODY>
<TR>
<TD>参数</TD>
<TD>意义</TD></TR>
<TR>
<TD>lpPrevWndFunc </TD>
<TD>Long，原来的窗口过程地址</TD></TR>
<TR>
<TD>HWnd</TD>
<TD>Long，窗口句柄</TD></TR>
<TR>
<TD>Msg</TD>
<TD>Long，发送的消息</TD></TR>
<TR>
<TD>wParam</TD>
<TD>Long，消息类型，参考wParam参数表 </TD></TR>
<TR>
<TD>lParam</TD>
<TD>Long，依据wParam参数的不同而不同 </TD></TR></TBODY></TABLE><BR>　　返回值 Long，依据发送的消息不同而变化 <BR><BR>　　SetWindowLong函数 ： <BR><BR>
<TABLE cellSpacing=0 width=600 align=center border=1>
<TBODY>
<TR>
<TD>参数</TD>
<TD>意义</TD></TR>
<TR>
<TD>hwnd </TD>
<TD>Long，欲为其取得信息的窗口的句柄</TD></TR>
<TR>
<TD>nIndex</TD>
<TD>Long，请参考GetWindowLong函数的nIndex参数的说明</TD></TR>
<TR>
<TD>dwNewLong</TD>
<TD>Long，由nIndex指定的窗口信息的新值 </TD></TR></TBODY></TABLE><BR>　　返回值 Long，指定数据的前一个值 <BR><BR>　　SendMessage函数 ： <BR><BR>
<TABLE cellSpacing=0 width=600 align=center border=1>
<TBODY>
<TR>
<TD>参数</TD>
<TD>意义</TD></TR>
<TR>
<TD>hwnd </TD>
<TD>Long，要接收消息的那个窗口的句柄</TD></TR>
<TR>
<TD>wMsg</TD>
<TD>Long，消息的标识符</TD></TR>
<TR>
<TD>wParam</TD>
<TD>Long，具体取决于消息</TD></TR>
<TR>
<TD>lParam</TD>
<TD>Any，具体取决于消息 </TD></TR></TBODY></TABLE><BR>　　返回值 Long，由具体的消息决定 <BR><BR><BR><A HREF="/nobody_am/articles/18573.html">VB托盘程序详解(1)[转载]</A><BR><A HREF="/nobody_am/articles/18574.html">VB托盘程序详解(2)[转载]</A><BR><A HREF="/nobody_am/articles/18575.html">VB托盘程序详解(3)[转载]</A><BR><A HREF="/nobody_am/articles/18576.html">VB托盘程序详解(4)[转载]</A><BR><A HREF="/nobody_am/articles/18577.html">VB托盘程序详解(5)[转载]</A><img src ="http://www.blogjava.net/nobody_am/aggbug/18575.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2005-11-07 14:49 <a href="http://www.blogjava.net/nobody_am/articles/18575.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VB托盘程序详解(2)[转载] </title><link>http://www.blogjava.net/nobody_am/articles/18574.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Mon, 07 Nov 2005 06:48:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/18574.html</guid><description><![CDATA[这时我们就可以使用这个函数来设置系统托盘图标了，具体方法如下：<BR><BR>　　　1、添加图标<BR><BR>
<TABLE width=600 align=center bgColor=#ebe9eb border=0>
<TBODY>
<TR>
<TD>With TheData <BR>　　　　.Uid = 0<BR>　　　　.HWnd = frm.HWnd　　　　　　　'frm.HWnd是程序主窗体的句柄<BR>　　　　.cbSize = Len(TheData)<BR>　　　　.HIcon = frm.Icon.Handle　　'frm.Icon.Handle指向主窗体的图标<BR>　　　　.UFlags = NIF_ICON<BR>　　　　.UCallbackMessage = TRAY_CALLBACK <BR>　　　　 '作用是允许返回消息，在下一节中会有详细解释。<BR>　　　　.UFlags = .UFlags Or NIF_MESSAGE<BR>　　　　.cbSize = Len(TheData)<BR>　　　End With<BR>　　　Shell_NotifyIcon NIM_ADD, TheData 　<BR>　　'根据前面定义NIM_ADD，设置为“添加模式”，然后添加</TD></TR></TBODY></TABLE>　　　<BR><BR>　　　2、删去图标<BR><BR>
<TABLE width=600 align=center bgColor=#ebe9eb border=0>
<TBODY>
<TR>
<TD>With TheData<BR>　　　　.UFlags = 0<BR>End With <BR>Shell_NotifyIcon NIM_DELETE, TheData　　<BR>'根据前面定义NIM_DELETE，设置为“删除模式”</TD></TR></TBODY></TABLE>　　　 <BR>　　　3、更改图标<BR><BR>
<TABLE width=600 align=center bgColor=#ebe9eb border=0>
<TBODY>
<TR>
<TD>With TheData <BR>　　.HIcon = pic.Handle 　　　<BR>　　'pic是图片狂PictureBox，存放图标文件<BR>　　.UFlags = NIF_ICON<BR>End With <BR>Shell_NotifyIcon NIM_MODIFY, TheData　<BR>'根据前面定义NIM_MODIFY，设置为“更改模式”</TD></TR></TBODY></TABLE>　　　 <BR>　　　4、为图标添加浮动提示信息<BR><BR>
<TABLE width=600 align=center bgColor=#ebe9eb border=0>
<TBODY>
<TR>
<TD>With TheData <BR>　　　　.SzTip = tip &amp; vbNullChar　<BR>　　　　　 'tip是字符串string，存储提示信息<BR>　　　　.UFlags = NIF_TIP 　　<BR>　　　　'指明要对浮动提示进行设置 <BR>End With <BR>Shell_NotifyIcon NIM_MODIFY, TheData　<BR>'根据前面定义NIM_MODIFY，设置为“修改模式” </TD></TR></TBODY></TABLE>　　　<BR><BR>　　通过以上几段代码我们就能根据自己需要添加、删除、更改系统托盘图标，并能添加系统图标上的浮动提示信息。但这时的托盘图标是孤立的，我们并不能利用它来控制应用程序的行为，怎么办呢？别急，请往下看…… <BR><BR><BR><A HREF="/nobody_am/articles/18573.html">VB托盘程序详解(1)[转载]</A><BR><A HREF="/nobody_am/articles/18574.html">VB托盘程序详解(2)[转载]</A><BR><A HREF="/nobody_am/articles/18575.html">VB托盘程序详解(3)[转载]</A><BR><A HREF="/nobody_am/articles/18576.html">VB托盘程序详解(4)[转载]</A><BR><A HREF="/nobody_am/articles/18577.html">VB托盘程序详解(5)[转载]</A><img src ="http://www.blogjava.net/nobody_am/aggbug/18574.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2005-11-07 14:48 <a href="http://www.blogjava.net/nobody_am/articles/18574.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VB托盘程序详解(1)[转载]</title><link>http://www.blogjava.net/nobody_am/articles/18573.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Mon, 07 Nov 2005 06:47:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/18573.html</guid><description><![CDATA[很多软件运行时会在系统托盘区(就是桌面右下角显示时间的区域)出现一个小图标，它作为程序运行的一个标志，我们可以通过使用小图标所弹出的菜单来控制应用程序的状态。本例就给出了一个功能比较完整的托盘程序，我们可以看到怎样用API函数Shell_NotifyIcon来添加、删除、更改托盘图标；而且例中还演示了为托盘图标添加右键菜单和浮动提示的方法。 <BR><BR>　　程序(附后)用到了Shell_NotifyIcon、SendMessage、CallWindowProc、SetWindowLong等API函数，其中Shell_NotifyIcon是主要的函数，它用来添加、删除、更改系统托盘区(taskbar status area)的图标，所以我们先来看看这个函数的声明和参数：<BR><BR>　　使用API函数之前必须先在程序中声明如下：<BR><BR>
<TABLE width=600 align=center bgColor=#ebe9eb border=0>
<TBODY>
<TR>
<TD>Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long <BR></TD></TR></TBODY></TABLE>　　 <BR>　　其中各参数的意义如下表: <BR><BR>
<TABLE cellSpacing=0 width=600 align=center border=1>
<TBODY>
<TR>
<TD>参数：</TD>
<TD>意义</TD></TR>
<TR>
<TD>dwMessage</TD>
<TD>为消息设置值，它可以是以下的几个常数值：0、1、2</TD></TR>
<TR>
<TD>NIM_ADD = 0　</TD>
<TD>加入图标到系统状态栏中</TD></TR>
<TR>
<TD>NIM_MODIFY = 1 </TD>
<TD>修改系统状态栏中的图标</TD></TR>
<TR>
<TD>NIM_DELETE = 2 </TD>
<TD>删除系统状态栏中的图标</TD></TR></TBODY></TABLE><BR>　　LpData 用以传入NOTIFYICONDATA数据结构变量，其结构如下所示：<BR><BR>
<TABLE width=600 align=center bgColor=#ebe9eb border=0>
<TBODY>
<TR>
<TD>Type NOTIFYICONDATA<BR><BR>　　cbSize As Long 　　　　　　　需填入NOTIFYICONDATA数据结构的长度<BR>　　HWnd As Long 　　　　　　　　设置成窗口的句柄 <BR>　　Uid As Long　　　　　　　　　为图标所设置的ID值<BR>　　UFlags As Long 　　　　　　　设置uCallbackMessage,hIcon,szTip是否有效<BR>　　UCallbackMessage As Long　　 消息编号<BR>　　HIcon As Long 　　　　　　　 显示在状态栏上的图标<BR>　　SzTip As String * 64　　　　 提示信息<BR>End Type</TD></TR></TBODY></TABLE><BR>　　返回值 Long，非零表示成功，零表示失败 <BR><BR>　　在使用这个API函数之前我们应该先定义结构类型NOTIFYICONDATA：<BR><BR>
<TABLE width=600 align=center bgColor=#ebe9eb border=0>
<TBODY>
<TR>
<TD>Public Type NOTIFYICONDATA <BR>　　　　　cbSize As Long HWnd As Long <BR>　　　　　Uid As Long UFlags As Long <BR>　　　　　UCallbackMessage As Long <BR>　　　　　HIcon As Long <BR>　　　　　SzTip As String * 64 <BR>　　　End Type </TD></TR></TBODY></TABLE><BR>　　然后定义一个NOTIFYICONDATA的变量TheData来记录设置托盘图标的数据<BR><BR>
<TABLE width=600 align=center bgColor=#ebe9eb border=0>
<TBODY>
<TR>
<TD>Private TheData As NOTIFYICONDATA</TD></TR></TBODY></TABLE><BR><BR><A HREF="/nobody_am/articles/18573.html">VB托盘程序详解(1)[转载]</A><BR><A HREF="/nobody_am/articles/18574.html">VB托盘程序详解(2)[转载]</A><BR><A href="/nobody_am/articles/18575.html">VB托盘程序详解(3)[转载]</A><BR><A HREF="/nobody_am/articles/18576.html">VB托盘程序详解(4)[转载]</A><BR><A HREF="/nobody_am/articles/18577.html">VB托盘程序详解(5)[转载]</A><img src ="http://www.blogjava.net/nobody_am/aggbug/18573.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2005-11-07 14:47 <a href="http://www.blogjava.net/nobody_am/articles/18573.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于VB调用DLL学习笔记</title><link>http://www.blogjava.net/nobody_am/articles/17863.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Wed, 02 Nov 2005 10:13:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/17863.html</guid><description><![CDATA[1..NET Framework生成的DLL被vb代码调用时，必须先生成tld文件,命令如下
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #008000">#</SPAN><SPAN style="COLOR: #008000">&nbsp;c:\winnt\Microsoft.net\framework\v1.1.4322\regasm&nbsp;/tlb:&nbsp;c:\makelicence.tlb&nbsp;c:\makelicence.dll&nbsp;/codebase</SPAN></DIV><BR><img src ="http://www.blogjava.net/nobody_am/aggbug/17863.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2005-11-02 18:13 <a href="http://www.blogjava.net/nobody_am/articles/17863.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ADO 访问数据库笔记</title><link>http://www.blogjava.net/nobody_am/articles/17782.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Wed, 02 Nov 2005 04:29:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/17782.html</guid><description><![CDATA[<P>主要关注下列两个对象：<BR>Connection对象（代表打开的、与数据源的连接。） <BR>RecordSet对象（代表来自基本表或命令执行结果的记录的全集。）&nbsp;<BR><BR>先来说一下Connection对象的方法： <BR>1、Open方法&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connection.Open ConnectionString, UserID, Password, Options </P>
<P dir=ltr style="MARGIN-RIGHT: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ConnectionString　 可选，字符串，包含连接信息。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UserID　 可选，字符串，包含建立连接时所使用用户名。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Password　 可选，字符串，包含建立连接时所使用密码。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Options　 可选，ConnectOptionEnum 值。决定该方法是在连接建立之后（异步）还是连接建立之前（同步）返回。可以是如下某个常量：&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adConnectUnspecified （默认）同步打开连接。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adAsyncConnect 异步打开连接。<BR>&nbsp;<BR>2、Execute方法&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connection.Execute CommandText, RecordsAffected </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CommandText　　字符串，包含要执行的 SQL 语句、表名、存储过程或特定提供者的文本。&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RecordsAffected　　可选，长整型变量，提供者向其返回操作所影响的记录数目。 <BR><BR>3、Close方法&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connection.Close&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用 Close 方法可关闭 Connection 对象以便释放所有关联的系统资源。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;需要注意的是：&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（1）关闭对象并非将它从内存中删除，可以更改它的属性设置并且在此后再次打开。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（2）要将对象从内存中完全删除，可将对象变量设置为 Nothing。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（3）使用 Close 方法关闭 Connection 对象的同时，也将关闭与连接相关联的任何活动 Recordset 对象。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（4）关闭 Connection 对象后，调用任何需要打开与对数据源连接的方法都将产生错误。&nbsp;<BR>&nbsp;<BR>下面说一下Connection对象的属性，简单提一下。&nbsp;<BR>&nbsp;1、Provider属性&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用 Provider 属性指定 OLE DB 提供者。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;需要注意的是：调用 Open 方法时在多处指定提供者可能会产生无法预料的后果。&nbsp;<BR><BR>&nbsp;2、ConnectionString 属性&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;包含用于建立连接数据源的信息。<BR>&nbsp;<BR>3、ConnectionTimeout 属性 <BR>指示在终止尝试和产生错误前建立连接期间所等待的时间，等待连接打开的时间的长整型值（单位为秒）。默认值为 15。 <BR><BR>4、Mode 属性&nbsp;<BR>&nbsp;&nbsp;&nbsp;指示在 Connection 中修改数据的可用权限。 <BR><BR>常量 说明 <BR>AdModeUnknown 默认值。表明权限尚未设置或无法确定。 <BR>AdModeRead 表明权限为只读。 <BR>AdModeWrite 表明权限为只写。 <BR>AdModeReadWrite 表明权限为读/写。 <BR>AdModeShareDenyRead 防止其他用户使用读权限打开连接。 <BR>AdModeShareDenyWrite 防止其他用户使用写权限打开连接。 <BR>AdModeShareExclusive 防止其他用户打开连接。 <BR>AdModeShareDenyNone 防止其他用户使用任何权限打开连接。 <BR>需要注意的是： 使用 Mode 属性可设置或返回当前连接上提供者正在使用的访问权限。Mode 属性只能在关闭 Connection 对象时才能够设置。<BR>&nbsp;<BR>下面说一下Recordset 对象的属性 <BR>1、CursorType 属性&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AdOpenForwardOnly： 仅向前游标，默认值。除了只能在记录中向前滚动外，与静态游标相同。当只需要在记录集中单向移动时，使用它可提高性能。（顾名思义，这种游标只能向前移动。然而，由于这种游标功能有限，将它用于系统资源时是非常有效的。）&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AdOpenKeyset： 键集游标。尽管从您的记录集不能访问其他用户删除的记录，但除无法查看其他用户添加的记录外，键集游标与动态游标相似。仍然可以看见其他用户更改的数据。（KeySet游标允许你看见自它创建起其他用户所做的修改，然而你却不能看到其他用户增加或删除的记录。）&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AdOpenDynamic ：动态游标。可以看见其他用户所作的添加、更改和删除。允许在记录集中进行所有类型的移动，但不包括提供者不支持的书签操作。（此类型的游标功能强大同时也是耗费系统资源最多的游标。Dynamic游标可以看到他们保存记录集合的所有变化。使用Dynamic游标的用户可以看到其他用户所做的编辑、增加、删除。如果数据提供者允许这种类型的游标，那么它是通过每隔一段时间从数据源重取数据来支持这种可视性的。毫无疑问这会需要很多的资源。 ）&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AdOpenStatic：静态游标。可以用来查找数据或生成报告的记录集合的静态副本。另外，对其他用户所作的添加、更改或删除不可见。（Static类游标只是数据的一幅快照。这就是说，它无法看到自它创建以后其他用户对RecordSet所做的修改。采用这类游标你可以向前和向后航行。由于其功能简单，资源的需求比Dynamic要小！ ） <BR>需要注意的是：一旦打开RecordSet，你就无法改变CursorType属性。但是，如果你首先关闭RecordSet，改变CursorType属性，然后重新打开RecordSet，那么你仍可以有效地改变游标的类型！ </P>
<P>2、LockType 属性&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在任何同时可被多用户修改的数据库应用程序中，你必须处理可能发生的多个用户同时对同一条记录进行操作时的情况。当这种情况出现时，数据的完整性就会受到威胁，这是因为一个用户可能会在不自觉地在保存自己所做的修改时覆盖他人的修改。到时候你会觉得自己好象是没有做事。为了处理这种情况。ADO允许你在对RecordSet对象进行更新时决定并发事件控制的类型，当一个用户编辑时，如何由他对记录进行锁定。这就是由LockType属性所决定的。这个属性有四个值：&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adLockReadonly：默认值，只读。无法更改数据。（这是RecodSet的默认值，如果你把锁定的方式设为该值，那么你将不能更新 Recordset。）&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adLockPessimistic：保守式记录锁定（逐条）。提供者执行必要的操作确保成功编辑记录，通常采用编辑时立即锁定数据源的记录的方式。（如果设置为此类锁定，记录被锁定，且只有在编辑开始到将记录更新的提交给数据提供者这段时间内进行编辑的用户才可以访问! ）&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adLockOptimistic：开放式记录锁定（逐条）。提供者使用开放式锁定，只在调用 Update 方法时锁定记录。（只有在将数据提交给数据提供者的那一瞬间才把记录锁定。）&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adlockBatchOptimistic：开放式批更新。用于与立即更新模式相反的批更新模式。（设定为这种类型的锁定制式将被称为批量更新模式的RecordSet。 可以加快更新RecordSet修改数据的速度，但因为同时更新多个记录，它也会恶化与并发访问相关的问题！ ） </P>
<P>3、AbsolutePage 属性&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AbsolutePage属性设定当前记录的位置是位于哪一页的页数编号；使用PageSize属性将Recordset对象分割为逻辑上的页数，每一页的记录数为PageSize(除了最后一页可能会有少于PageSize的记录数)。这里必须注意并不是所有的数据提供者都支持此项属性，因此使用时要小心。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;与AbsolutePosition属性相同，AbsolutePage属性是以1为起始的，若当前记录为Recordset的第一行记录，AbsolutePage为1。可以设定AbsolutePage属性，以移动到一个指定页的第一行记录位置。 <BR>4、AbsolutePosition属性&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;若您需要确定目前指标在RecordSet中的位置，您可以用AbsolutePosition属性。 <BR>AbsolutePosition属性的数值为目前指标相对於第一笔的位置，由1算起，即第一笔的AbsolutePosition为1。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注意,在存取RecordSet时，无法保证RecordSet每次都以同样的顺序出现。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;若要启用AbsolutePosition，必须先设定为使用用户端cursor(指针)：rs.CursorLocation=3 </P>
<P>5、PageCount属性&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用PageCount属性，决定Recordset对象包括多少“页”的数据。这里的“页”是数据记录的集合，大小等于PageSize属性的设定，即使最后一页的记录数比PageSize的值少，最后一页也算是PageCount的一页。必须注意也并不是所有的数据提供者都支持此项属性。 </P>
<P>6、PageSize属性&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PageSize属性是决定ADO存取数据库时如何分页显示的关键，使用它就可以决定多少记录组成一个逻辑上的“一页”。设定并建立一个页的大小，从而允许使用AbsolutePage属性移到其它逻辑页的第一条记录。PageSize属性能随时被设定。 </P>
<P>7、RecordCount属性&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这也是一个非常常用和重要的属性，我们常用RecordCount属性来找出一个Recordset对象包括多少条记录。使用 RecordCount 属性可确定Recordset 对象中记录的数目。ADO 无法确定记录数时，或者如果提供者或游标类型不支持 RecordCount，则该属性返回 –1。读已关闭的 Recordset 上的 RecordCount 属性将产生错误。Recordset 对象的游标类型会影响是否能够确定记录的数目。对仅向前游标，RecordCount 属性将返回 -1，对静态或键集游标返回实际计数，对动态游标取决于数据源返回 -1 或实际计数。 </P>
<P>8、BOF与EOF属性&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;通常我们在ASP程序中编写代码来检验BOF与EOF属性，从而得知目前指标所指向的RecordSet的位置，使用BOF与EOF属性，可以得知一个Recordset对象是否包含有记录或者得知移动记录行是否已经超出该Recordset对象的范围。 <BR>若当前记录的位置是在一个Recordset对象第一行记录之前时，BOF属性返回true，反之则返回false。 <BR>若当前记录的位置是在一个Recordset对象最后一行记录之后时，EOF属性返回true，反之则返回false。 <BR>（BOF与EOF都为True表示在RecordSet里没有任何记录。） </P>
<P>9、Filter 属性&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;为 Recordset 中的数据指定筛选条件，使用 Filter 属性可选择性地屏蔽 Recordset 对象中的记录，已筛选的 Recordset 将成为当前游标。 </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这将影响基于当前游标返回值的其他属性，如 AbsolutePosition、AbsolutePage、RecordCount 和 PageCount，因为将 Filter 属性设置为特 </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;定值可将当前记录移动到满足新值的第一个记录。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这属性我认为相当有用处，有的时候我们打开了Recordset进行了某些判断以后我们还想过滤记录也就是重新调整 sql 语句，难道我们关闭Recordset再用新的SQL语句打开？不是，我们用Filter属性进行过滤，比如说&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs.open exec,conn,1,1&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if .... then rs.filter="name='xxx'"&nbsp;<BR>而不是&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs.open exec,conn,1,1&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ... then&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs.close&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exec=exec&amp;" where name='xxx'"&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs.open exec,conn,1,1&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end if <BR>实际上再很多地方不得不用到Filter。<BR><BR>Recordset对象的一些方法：<BR>1、AddNew 方法&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;创建可更新 Recordset 对象的新记录。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;recordset.AddNew FieldList, Values&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FieldList　&nbsp;可选。新记录中字段的单个名称、一组名称或序号位置。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Values　&nbsp;可选。新记录中字段的单个或一组值。如果 Fields 是数组，那么 Values 也必须是有相同成员数的数组，否则将发生错误。字段名称的次序必须与每个数组中的字段值的次序相匹配。&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我们一般是&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs.addnew&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs("xx")=xx&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs("xx")=xx&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs.update&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;需要注意的是在立即更新模式（调用 Update 方法时提供者会立即将更改写入基本数据源）下，调用不带参数的 AddNew 方法可将 EditMode 属性设置为 adEditAdd。提供者将任何字段值的更改缓存在本地。调用 Update 方法可将新记录传递到数据库并将 EditMode 属性重置为 adEditNone。如果传送了 Fields 和 Values 参数，ADO 则立即将新记录传递到数据库（无须调用 Update），且 EditMode 属性值没有改变 (adEditNone)。 <BR>可能大家会问在ASP中使用ADO的AddNew方法和直接使用“Insert into...”语句有和不同？那种方式更好？答：ADO的AddNew方法只是将“Insert into ”语句封装了起来，所以，当对大量数据进行操作的时候，直接使用SQL语句将会大大加快存取数据的速度，因为他减少了ADO的“翻译”时间。 <BR><BR>2、Delete 方法&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;删除当前记录或记录组。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;recordset.Delete AffectRecords&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AffectRecords　&nbsp;AffectEnum 值，确定 Delete 方法所影响的记录数目，该值可以是下列常量之一。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AdAffectCurrent 默认。仅删除当前记录。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AdAffectGroup 删除满足当前 Filter 属性设置的记录。要使用该选项，必须将 Filter 属性设置为有效的预定义常量之一。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adAffectAll 删除所有记录。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adAffectAllChapters 删除所有子集记录。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用立即更新模式将在数据库中进行立即删除，否则记录将标记为从缓存删除，实际的删除将在调用 Update 方法时进行。 <BR><BR>3、Update 方法&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;保存对 Recordset 对象的当前记录所做的所有更改&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;recordset.Update Fields, Values&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fields　&nbsp;可选。变体型，代表单个名称；或变体型数组，代表需要修改的字段（一个或多个）名称及序号位置。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Values　&nbsp;可选。变体型，代表单个值；或变体型数组，代表新记录中字段（单个或多个）值。 <BR>如果希望取消对当前记录所做的任何更改或者放弃新添加的记录，则必须调用 CancelUpdate 方法。 <BR><BR>4、CancelUpdate 方法&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;recordset.CancelUpdate&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用 CancelUpdate 方法可取消对当前记录所作的任何更改或放弃新添加的记录。在调用 Update 方法后将无法撤消对当前记录或新记录所做的更改，如果在调用 CancelUpdate 方法时添加新记录，则调用 AddNew 之前的当前记录将再次成为当前记录。如果尚未更改当前记录或添加新记录，调用 CancelUpdate 方法将产生错误。 <BR><BR>5、Find 方法&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;搜索 Recordset 中满足指定标准的记录。如果满足标准，则记录集位置设置在找到的记录上，否则位置将设置在记录集的末尾。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Find (criteria, SkipRows, searchDirection, start)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;criteria　&nbsp;字符串，包含指定用于搜索的列名、比较操作符和值的语句。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SkipRows　　可选，长整型值，其默认值为零，它指定当前行或 start 书签的位移以开始搜索。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;searchDirection　　可选的 SearchDirectionEnum 值，指定搜索应从当前行还是下一个有效行开始。其值可为 adSearchForward 或&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adSearchBackward。搜索是在记录集的开始还是末尾结束由 searchDirection 值决定。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start　　可选，变体型书签，用作搜索的开始位置。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;criteria “比较操作符”可以是“&gt;”（大于）、“&lt;”（小于）、“=”（等于）、“&gt;=”（大于或等于）、“&lt;=”（小于或等于）、“&lt;&gt;”&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;（不等于）或“like”（模式匹配）。 criteria 中的值可以是字符串、浮点数或者日期。字符串值以单引号分界（如“state = 'WA'”）。&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;日期值以“#”（数字记号）分界（如“start_date &gt; #7/22/97#”）。 <BR>需要注意的是find是不支持多字段。但是可以用filter实现。"name='abc'"AND "city='sh'" 是不允许的 <BR><BR>6、Move 方法&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;移动 Recordset 对象中当前记录的位置&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;recordset.Move NumRecords, Start&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NumRecords　　带符号长整型表达式，指定当前记录位置移动的记录数。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start　　可选，字符串或变体型，用于计算书签。也可为下列值之一：&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AdBookmarkCurrent 默认。从当前记录开始。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AdBookmarkFirst 从首记录开始。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AdBookmarkLast 从尾记录开始。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;需要注意的是：&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（1）如果 NumRecords 参数大于零，则当前记录位置将向前移动（向记录集的末尾）。如果 NumRecords 小于零，则当前记录位置向后移动（向记录集的开始）。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（2）从空的 Recordset 对象调用 Move 方法将产生错误。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（3）如果 Move 调用将当前记录位置移动到首记录之前，则 ADO 将当前记录放置在记录集（BOF 为 True）的首记录之前。在 BOF 属性已经为 True 时试图向后移动将产生错误；如果 Move 调用将当前记录位置移动到尾记录之后，则 ADO 将当前记录放置在记录集（EOF 为 True）的尾记录之后。在 EOF 属性已经为 True 时试图向前移动将产生错误。 <BR><BR>7、MoveFirst、MoveLast、MoveNext 和 MovePrevious 方法&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在指定 Recordset 对象中移动到第一个、最后一个、下一个或前一个记录并使该记录成为当前记录。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;recordset.{MoveFirst | MoveLast | MoveNext | MovePrevious}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;需要注意的是：&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（1）使用 MoveNext 方法将当前记录向前移动一个记录（向 Recordset 的底部）。如果最后一个记录是当前记录并且调用 MoveNext 方法，则 ADO 将当前记录设置到 Recordset （EOF 为 True）的尾记录之后。当 EOF 属性已经为 True 时试图向前移动将产生错误。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（2）使用 MovePrevious 方法将当前记录位置向后移动一个记录（向记录集的顶部）。Recordset 对象必须支持向后游标移动；否则方法调用将产生错误。如果首记录是当前记录并且调用 MovePrevious 方法，则 ADO 将当前记录设置在 Recordset （BOF 为 True）的首记录之前。而 BOF 属性为 True 时向后移动将产生错误。 <BR><BR>8、Clone 方法&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;创建与现有 Recordset 对象相同的复制 Recordset 对象。可选择指定该副本为只读。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set rstDuplicate = rstOriginal.Clone&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rstDuplicate　&nbsp;对象变量，标识正在创建的复制 Recordset 对象。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rstOriginal　&nbsp;对象变量，标识要被复制的 Recordset 对象。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用 Clone 方法可创建多个 Recordset 对象副本，这对于希望在给定的记录组中保留多个当前记录十分有用。使用 Clone 方法比使用与初始定义相同的定义创建和打开新 Recordset 对象要有效得多。 <BR>也就是说&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs.open exec,conn,1,1&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs2.open exec,conn,1,1 <BR>应该这么改写 <BR>rs.open exec,conn,1,1 <BR>rs2=rs.clone&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;需要注意的是：&nbsp;<BR>&nbsp;&nbsp;&nbsp;（1）新创建副本的当前记录将设置为首记录。&nbsp;<BR>&nbsp;&nbsp;&nbsp;（2）关闭原始 Recordset 时并不关闭它的副本，而关闭某个副本也将不关闭原始 Recordset 或任何其他副本。 <BR><BR>9、Close 方法&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;关闭打开的对象及任何相关对象。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;object.Close&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;需要注意的是：&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（1）使用 Close 方法可关闭Recordset 对象以便释放所有关联的系统资源。关闭对象并非将它从内存中删除，可以更改它的属性设置并且在&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;此后再次打开。要将对象从内存中完全删除，可将对象变量设置为 Nothing。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（2）如果正在立即更新模式下进行编辑，调用 Close 方法将产生错误，应首先调用 Update 或 CancelUpdate 方法。 <BR><BR><BR>10、Open 方法，为什么最后说这个，因为前面的各项属性方法没有弄清楚，我们是不会理解CursorType参数的&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;recordset.Open Source, ActiveConnection, CursorType, LockType, Options&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Recordset对象可以通过Source属性来连接Command对象。Source参数可以是一个Command对象名称、一段SQL命令、一个指定的数据表名称或是一个Stored Procedure。假如省略这个参数，系统则采用Recordset对象的Source属性。ActiveConnection&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Recordset对象可以通过ActiveConnection属性来连接Connection对象。这里的ActiveConnection可以是一个Connection对象或是一串包含数据&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;库连接信息（ConnectionString）的字符串参数。CursorType&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Recordset对象Open方法的CursorType参数表示将以什么样的游标类型启动数据，包括&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adOpenForwardOnly、adOpenKeyset、adOpenDynamic及ad&nbsp;<BR><BR>&nbsp;OpenStatic，分述如下： <BR>------------------------------------------------------------ -- <BR>常数 常数值 说明 <BR>------------------------------------------------------------ - <BR>adOpenForwardOnly 0 缺省值，启动一个只能向前移动的游标（Forward Only）。 <BR>adOpenKeyset 1 启动一个Keyset类型的游标。 <BR>adOpenDynamic 2 启动一个Dynamic类型的游标。 <BR>adOpenStatic 3 启动一个Static类型的游标。 <BR>------------------------------------------------------------ -&nbsp;<BR><BR>以上几个游标类型将直接影响到Recordset对象所有的属性和方法，以下列表说明他们之间的区别。&nbsp;<BR>---------------------------------------------------------------------------------------<BR>Recordset属性 adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic <BR>---------------------------------------------------------------------------------------<BR>AbsolutePage 不支持 不支持 可读写 可读写 <BR>AbsolutePosition 不支持 不支持 可读写 可读写 <BR>BOF 只读 只读 只读 只读 <BR>CursorType 可读写 可读写 可读写 可读写 <BR>EOF 只读 只读 只读 只读 <BR>Filter 可读写 可读写 可读写 可读写 <BR>LockType 可读写 可读写 可读写 可读写 <BR>PageCount 不支持 不支持 只读 只读 <BR>PageSize 可读写 可读写 可读写 可读写 <BR>RecordCount 不支持 不支持 只读 只读 <BR>AddNew 支持 支持 支持 支持 <BR>CancelBatch 支持 支持 支持 支持 <BR>CancelUpdate 支持 支持 支持 支持 <BR>Close 支持 支持 支持 支持 <BR>Delete 支持 支持 支持 支持 <BR>Move 不支持 支持 支持 支持 <BR>MoveFirst 支持 支持 支持 支持 <BR>MoveLast 不支持 支持 支持 支持 <BR>MoveNext 支持 支持 支持 支持 <BR>MovePrevious 不支持 支持 支持 支持 <BR>Open支持 支持 支持 支持 <BR>Update 支持 支持 支持 支持 <BR>UpdateBatch 支持 支持 支持 支持 <BR>------------------------------------------------------------ -- <BR><BR>Recordset对象Open方法的LockType参数表示要采用的Lock类型，如果忽略这个参数，那么系统会以Recordset对象的LockType属性为预设值。LockType参数包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等，分述如下： <BR>--------------------------------------------------------------<BR>常数 常数值 说明 <BR>------------------------------------------------------------ -- <BR><BR>adLockReadOnly 1 缺省值，Recordset对象以只读方式启动，无法运行AddNew、Update及Delete等方法 <BR>adLockPrssimistic 2 当数据源正在更新时，系统会暂时锁住其他用户的动作，以保持数据一致性。 <BR>adLockOptimistic 3 当数据源正在更新时，系统并不会锁住其他用户的动作，其他用户可以对数据进行增、删、改的操作。 <BR>adLockBatchOptimistic 4 当数据源正在更新时，其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、删、改的操作。 <BR><BR>需要注意的是： 如果数据源没有返回记录，那么提供者将 BOF 和 EOF 属性同时设置为 True，并且不定义当前记录位置。如果游标类型允许，仍然可以将新数据添加到该空 Recordset 对象。 <BR><BR>通过ADO调用存储过程的示例:</P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">Dim</SPAN><SPAN style="COLOR: #000000">&nbsp;conn&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">New</SPAN><SPAN style="COLOR: #000000">&nbsp;Connection&nbsp;</SPAN><SPAN style="COLOR: #008000">'</SPAN><SPAN style="COLOR: #008000">Connection&nbsp;对象代表了打开与数据源的连接。</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Dim</SPAN><SPAN style="COLOR: #000000">&nbsp;comm&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">New</SPAN><SPAN style="COLOR: #000000">&nbsp;Command&nbsp;</SPAN><SPAN style="COLOR: #008000">'</SPAN><SPAN style="COLOR: #008000">Command&nbsp;对象定义了将对数据源执行的指定命令。</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Dim</SPAN><SPAN style="COLOR: #000000">&nbsp;iReturnValue&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Integer</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #008000">'</SPAN><SPAN style="COLOR: #008000">调用存储过程的返回值</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Set</SPAN><SPAN style="COLOR: #000000">&nbsp;conn&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;g_GetConn<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;conn.BeginTrans<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Set</SPAN><SPAN style="COLOR: #000000">&nbsp;comm.ActiveConnection&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;conn&nbsp;</SPAN><SPAN style="COLOR: #008000">'</SPAN><SPAN style="COLOR: #008000">指示指定的&nbsp;Command对象当前所属的&nbsp;Connection对象。</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;comm.CommandText&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">tLicenseDownloadInsert</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #008000">'</SPAN><SPAN style="COLOR: #008000">设置Command对象源。</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;comm.CommandType&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;adCmdStoredProc&nbsp;</SPAN><SPAN style="COLOR: #008000">'</SPAN><SPAN style="COLOR: #008000">通知提供者CommandText属性有什么，它可能包括Command对象的源类型。设置这个属性优化了该命令的执行。</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">'</SPAN><SPAN style="COLOR: #008000">comm.Parameters(1)&nbsp;=&nbsp;0</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;comm.Parameters(</SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;Data(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">OrderID</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;comm.Parameters(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;Data(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">CustomerID</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;comm.Parameters(</SPAN><SPAN style="COLOR: #000000">4</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;Data(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">CustomerCode</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;comm.Parameters(</SPAN><SPAN style="COLOR: #000000">5</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;Data(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">CustomerName</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;comm.Parameters(</SPAN><SPAN style="COLOR: #000000">6</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;Data(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">DownloadNumber</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;comm.Parameters(</SPAN><SPAN style="COLOR: #000000">7</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;comm.Parameters(</SPAN><SPAN style="COLOR: #000000">8</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">CStr</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">Date</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;comm.Parameters(</SPAN><SPAN style="COLOR: #000000">9</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;Data(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">ImportStatus</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;comm.Parameters(</SPAN><SPAN style="COLOR: #000000">10</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;Data(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">ImportTime</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;comm.Parameters(</SPAN><SPAN style="COLOR: #000000">11</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;Data(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Remark</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;comm.Execute<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;iReturnValue&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;comm.Parameters(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #008000">'</SPAN><SPAN style="COLOR: #008000">存储过程的返回值，返回0则成功执行</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">If</SPAN><SPAN style="COLOR: #000000">&nbsp;iReturnValue&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Then</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">GoTo</SPAN><SPAN style="COLOR: #000000">&nbsp;ErrorHandler<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Dim</SPAN><SPAN style="COLOR: #000000">&nbsp;iPkid&nbsp;</SPAN><SPAN style="COLOR: #0000ff">As</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Integer</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;iPkid&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;comm.Parameters(</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #008000">'</SPAN><SPAN style="COLOR: #008000">把存储过程的输出参数的值赋给变量strS</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV>
<P><BR><!-- Message body ''"" --></P><img src ="http://www.blogjava.net/nobody_am/aggbug/17782.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2005-11-02 12:29 <a href="http://www.blogjava.net/nobody_am/articles/17782.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我对C#中事件的理解</title><link>http://www.blogjava.net/nobody_am/articles/13524.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Tue, 20 Sep 2005 07:03:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/13524.html</guid><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 事件(Event)C#中的事件处理实际上是一种具有特殊签名的delegate，一般象下面这个样子：public delegate void MyEventHandler(object sender, MyEventArgs e);其中的两个参数，sender代表事件发送者，e是事件参数类。MyEventArgs类用来包含与事件相关的数据，所有的事件参数类都必须从System.EventArgs类派...&nbsp;&nbsp;<a href='http://www.blogjava.net/nobody_am/articles/13524.html'>阅读全文</a><img src ="http://www.blogjava.net/nobody_am/aggbug/13524.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2005-09-20 15:03 <a href="http://www.blogjava.net/nobody_am/articles/13524.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我对C#中委托的理解</title><link>http://www.blogjava.net/nobody_am/articles/13521.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Tue, 20 Sep 2005 06:41:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/13521.html</guid><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 委托(Daelegate)delegate是C#中的一种类型，它实际上是一个能够持有对某个方法的引用的类。与其它的类不同，delegate类能够拥有一个签名（signature），并且它只能持有与它的签名相匹配的方法的引用。它所实现的功能与C/C++中的函数指针十分相似。它允许你传递一个类A的方法m给另一个类B的对象，使得类B的对象能够调用这个方法m。但与函数指针相比，delegate有许多函数指...&nbsp;&nbsp;<a href='http://www.blogjava.net/nobody_am/articles/13521.html'>阅读全文</a><img src ="http://www.blogjava.net/nobody_am/aggbug/13521.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2005-09-20 14:41 <a href="http://www.blogjava.net/nobody_am/articles/13521.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WinForm DataGrid绑定下拉列表框和按钮</title><link>http://www.blogjava.net/nobody_am/articles/13427.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Mon, 19 Sep 2005 08:55:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/13427.html</guid><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Part 1 先列出下拉列表框与按钮的类代码：a. DataGridComboBoxColumnusing&nbsp;System;using&nbsp;System.Drawing;using&nbsp;System.Collections;using&nbsp;System.ComponentModel;using&nbsp;System.Windows.Forms;using&nbsp;...&nbsp;&nbsp;<a href='http://www.blogjava.net/nobody_am/articles/13427.html'>阅读全文</a><img src ="http://www.blogjava.net/nobody_am/aggbug/13427.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2005-09-19 16:55 <a href="http://www.blogjava.net/nobody_am/articles/13427.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WinForm DataGrid 的DataGridTableStyle用法</title><link>http://www.blogjava.net/nobody_am/articles/13373.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Mon, 19 Sep 2005 03:11:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/13373.html</guid><description><![CDATA[Part 1 自定义数据源方式的代码，首先在winform里拖一个DataGrid进去。
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Form1_Load(</span><span style="COLOR: #0000ff">object</span><span style="COLOR: #000000">&nbsp;sender,&nbsp;System.EventArgs&nbsp;e)<br><img id=Codehighlighter1_61_1674_Open_Image onclick="this.style.display='none'; Codehighlighter1_61_1674_Open_Text.style.display='none'; Codehighlighter1_61_1674_Closed_Image.style.display='inline'; Codehighlighter1_61_1674_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_61_1674_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_61_1674_Closed_Text.style.display='none'; Codehighlighter1_61_1674_Open_Image.style.display='inline'; Codehighlighter1_61_1674_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_61_1674_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_61_1674_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">定义数据源－－DataTable</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataTable&nbsp;dt</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;DataTable(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">mytable</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">添加列</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dt.Columns.Add(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">列1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">typeof</span><span style="COLOR: #000000">(String));<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dt.Columns.Add(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">列2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">typeof</span><span style="COLOR: #000000">(Int32));<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dt.Columns.Add(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">列3</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">typeof</span><span style="COLOR: #000000">(Boolean));<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">添加行</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataRow&nbsp;row,row1;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">dt.NewRow();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row[</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">列1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">行1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row[</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">列2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row[</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">列3</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dt.Rows.Add(row);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row1</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">dt.NewRow();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row1[</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">列1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">行2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row1[</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">列2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row1[</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">列3</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dt.Rows.Add(row1);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">为DataGrid添加数据源</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataGrid1.DataSource</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">dt;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">定义DataGridTableStyle</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridTableStyle&nbsp;ts</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;DataGridTableStyle();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ts.MappingName</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">dt.TableName;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">映射style对应数据源的表名，很重要，否则无数据显示<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">分别对列进行渲染</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;numColumns</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">dt.Columns.Count;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataGrid1.CaptionText</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">DataGrid事例</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">指名DataGrid标题<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">采用循环方式渲染前两列</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridTextBoxColumn&nbsp;aColumnTextColumn;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">numColumns</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_879_1377_Open_Image onclick="this.style.display='none'; Codehighlighter1_879_1377_Open_Text.style.display='none'; Codehighlighter1_879_1377_Closed_Image.style.display='inline'; Codehighlighter1_879_1377_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_879_1377_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_879_1377_Closed_Text.style.display='none'; Codehighlighter1_879_1377_Open_Image.style.display='inline'; Codehighlighter1_879_1377_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_879_1377_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_879_1377_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">前两列绑定TextBox方式显示</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aColumnTextColumn</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;DataGridTextBoxColumn();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aColumnTextColumn.HeaderText</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">dt.Columns[i].ColumnName;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">列头</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aColumnTextColumn.MappingName</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">dt.Columns[i].ColumnName;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">映射数据源的列名，很重要，否则无数据显示</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(i</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_1122_1218_Open_Image onclick="this.style.display='none'; Codehighlighter1_1122_1218_Open_Text.style.display='none'; Codehighlighter1_1122_1218_Closed_Image.style.display='inline'; Codehighlighter1_1122_1218_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1122_1218_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1122_1218_Closed_Text.style.display='none'; Codehighlighter1_1122_1218_Open_Image.style.display='inline'; Codehighlighter1_1122_1218_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1122_1218_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1122_1218_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">规定Cell的高度和宽度，然后渲染</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ts.PreferredColumnWidth</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ts.PreferredRowHeight</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">20</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">指名交替行的背景色</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ts.AlternatingBackColor</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Color.LightGray;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">TableStyle的ColumnStyle列添加上面指定的TextBox</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ts.GridColumnStyles.Add(aColumnTextColumn);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">用CheckBox的方式渲染第3列</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridBoolColumn&nbsp;bc</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;DataGridBoolColumn();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bc.HeaderText</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">dt.Columns[</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">].ColumnName;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bc.MappingName</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">dt.Columns[</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">].ColumnName;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ts.PreferredColumnWidth</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ts.GridColumnStyles.Add(bc);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">DataGrid上添加上面定义的TableStyle</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataGrid1.TableStyles.Add(ts);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<br>Part 2 用查询数据库的结果集作为数据源，首先在winform里拖一个datagrid。
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Form2_Load(</span><span style="COLOR: #0000ff">object</span><span style="COLOR: #000000">&nbsp;sender,&nbsp;System.EventArgs&nbsp;e)<br><img id=Codehighlighter1_61_1243_Open_Image onclick="this.style.display='none'; Codehighlighter1_61_1243_Open_Text.style.display='none'; Codehighlighter1_61_1243_Closed_Image.style.display='inline'; Codehighlighter1_61_1243_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_61_1243_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_61_1243_Closed_Text.style.display='none'; Codehighlighter1_61_1243_Open_Image.style.display='inline'; Codehighlighter1_61_1243_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_61_1243_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_61_1243_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataSet&nbsp;ds</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">BookingCar.Business.Facade.Order.QueryAllOrderStatus();&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">查询数据库得到DataSet</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataGrid1.DataSource</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">ds.Tables[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">];&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设定数据源</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataGrid1.CaptionText</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">DataGrid试验</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设定DataGrid的标题</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridTableStyle&nbsp;ts</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;DataGridTableStyle();&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">定义TableStyle</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ts.MappingName</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">ds.Tables[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].TableName;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">映射表名称，重要</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ts.ReadOnly</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">整个DataGrid读写方式<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">第一列</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridTextBoxColumn&nbsp;tc</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;DataGridTextBoxColumn();&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">定义第一列用TextBox渲染</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tc.HeaderText</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">状态类型</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">改变列头的显示</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tc.MappingName</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">ds.Tables[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].Columns[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].ColumnName;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">映射列的名称，重要，实际就是查询select&nbsp;对因的列</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tc.Alignment</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">HorizontalAlignment.Center;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">对齐方式</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tc.ReadOnly</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">指明这一列的为只读方式</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ts.PreferredColumnWidth</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">70</span><span style="COLOR: #000000">;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">指明Cell宽度</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ts.PreferredRowHeight</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">20</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">指名Cell高度</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ts.AlternatingBackColor</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Color.LightGray;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ts.GridColumnStyles.Add(tc);&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">为ColumnStyle添加上面的TextBox<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">第二列</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tc</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;DataGridTextBoxColumn();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tc.HeaderText</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">状态描述</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tc.MappingName</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">ds.Tables[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].Columns[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">].ColumnName;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ts.PreferredColumnWidth</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">200</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ts.PreferredRowHeight</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">20</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ts.AlternatingBackColor</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Color.LightGray;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ts.GridColumnStyles.Add(tc);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">把TableStyle添加到DataGrid的tablestyle中</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataGrid1.TableStyles.Add(ts);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<p>Part 3 使用DataGrid的属性面板。首先在winform里拖一个datagrid。</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Form3_Load(</span><span style="COLOR: #0000ff">object</span><span style="COLOR: #000000">&nbsp;sender,&nbsp;System.EventArgs&nbsp;e)<br><img id=Codehighlighter1_61_217_Open_Image onclick="this.style.display='none'; Codehighlighter1_61_217_Open_Text.style.display='none'; Codehighlighter1_61_217_Closed_Image.style.display='inline'; Codehighlighter1_61_217_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_61_217_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_61_217_Closed_Text.style.display='none'; Codehighlighter1_61_217_Open_Image.style.display='inline'; Codehighlighter1_61_217_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_61_217_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_61_217_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataSet&nbsp;ds</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">BookingCar.Business.Facade.Order.QueryAllOrderStatus();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataGrid1.DataSource</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">ds.Tables[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">];</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<br>
<p>然后在TableStyle属性框内添加TableStyle，一般添加一个就够了，然后为TableStyle添加ColumnStyle，对应多个列。两个属性的mappingname都很重要，TableStyle的mappingname对应结果集的表名称，columnstyle的mappingname对应列的名称。<br>&nbsp;&nbsp; </p>
<img src ="http://www.blogjava.net/nobody_am/aggbug/13373.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2005-09-19 11:11 <a href="http://www.blogjava.net/nobody_am/articles/13373.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>