﻿<?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>C++博客-twzheng's cppblog-文章分类-C#</title><link>http://www.cppblog.com/twzheng/category/5665.html</link><description>『站在风口浪尖紧握住鼠标旋转！』</description><language>zh-cn</language><lastBuildDate>Tue, 08 Jul 2008 12:55:23 GMT</lastBuildDate><pubDate>Tue, 08 Jul 2008 12:55:23 GMT</pubDate><ttl>60</ttl><item><title>在MDI多文档界面中，如何使子窗口只显示一次，当运行子窗口时如果已经打开了，则直接显示不再建立窗口的方法</title><link>http://www.cppblog.com/twzheng/articles/55594.html</link><dc:creator>爱在江城</dc:creator><author>爱在江城</author><pubDate>Tue, 08 Jul 2008 02:07:00 GMT</pubDate><guid>http://www.cppblog.com/twzheng/articles/55594.html</guid><wfw:comment>http://www.cppblog.com/twzheng/comments/55594.html</wfw:comment><comments>http://www.cppblog.com/twzheng/articles/55594.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/twzheng/comments/commentRss/55594.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/twzheng/services/trackbacks/55594.html</trackback:ping><description><![CDATA[<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.cppblog.com/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;menuItem3_Click(</span><span style="COLOR: #0000ff">object</span><span style="COLOR: #000000">&nbsp;sender,&nbsp;System.EventArgs&nbsp;e)&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">菜单的CLICK事件</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_77_541_Open_Image onclick="this.style.display='none'; Codehighlighter1_77_541_Open_Text.style.display='none'; Codehighlighter1_77_541_Closed_Image.style.display='inline'; Codehighlighter1_77_541_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_77_541_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_77_541_Closed_Text.style.display='none'; Codehighlighter1_77_541_Open_Image.style.display='inline'; Codehighlighter1_77_541_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_77_541_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_77_541_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>Form1&nbsp;frm1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">foreach</span><span style="COLOR: #000000">&nbsp;(Form&nbsp;ftemp&nbsp;</span><span style="COLOR: #0000ff">in</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.MdiChildren)&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">查找当前父表单所有子表单</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_178_332_Open_Image onclick="this.style.display='none'; Codehighlighter1_178_332_Open_Text.style.display='none'; Codehighlighter1_178_332_Closed_Image.style.display='inline'; Codehighlighter1_178_332_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_178_332_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_178_332_Closed_Text.style.display='none'; Codehighlighter1_178_332_Open_Image.style.display='inline'; Codehighlighter1_178_332_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_178_332_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_178_332_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/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;(ftemp&nbsp;</span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000">&nbsp;Form1)<br><img id=Codehighlighter1_232_318_Open_Image onclick="this.style.display='none'; Codehighlighter1_232_318_Open_Text.style.display='none'; Codehighlighter1_232_318_Closed_Image.style.display='inline'; Codehighlighter1_232_318_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_232_318_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_232_318_Closed_Text.style.display='none'; Codehighlighter1_232_318_Open_Image.style.display='inline'; Codehighlighter1_232_318_Open_Text.style.display='inline';" src="http://www.cppblog.com/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_232_318_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_232_318_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/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;frm1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(Form1)ftemp;<br><img src="http://www.cppblog.com/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: #0000ff">break</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/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.cppblog.com/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.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.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;(frm1&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">&nbsp;frm1.IsDisposed)<br><img id=Codehighlighter1_396_485_Open_Image onclick="this.style.display='none'; Codehighlighter1_396_485_Open_Text.style.display='none'; Codehighlighter1_396_485_Closed_Image.style.display='inline'; Codehighlighter1_396_485_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_396_485_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_396_485_Closed_Text.style.display='none'; Codehighlighter1_396_485_Open_Image.style.display='inline'; Codehighlighter1_396_485_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_396_485_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_396_485_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frm1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Form1();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frm1.MdiParent&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/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.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frm1.Show();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frm1.Activate();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<img src ="http://www.cppblog.com/twzheng/aggbug/55594.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/twzheng/" target="_blank">爱在江城</a> 2008-07-08 10:07 <a href="http://www.cppblog.com/twzheng/articles/55594.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C#实现“资源管理器”源码（带图标显示） </title><link>http://www.cppblog.com/twzheng/articles/55562.html</link><dc:creator>爱在江城</dc:creator><author>爱在江城</author><pubDate>Mon, 07 Jul 2008 12:06:00 GMT</pubDate><guid>http://www.cppblog.com/twzheng/articles/55562.html</guid><wfw:comment>http://www.cppblog.com/twzheng/comments/55562.html</wfw:comment><comments>http://www.cppblog.com/twzheng/articles/55562.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/twzheng/comments/commentRss/55562.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/twzheng/services/trackbacks/55562.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;//C#资源管理器源码using&nbsp;System;using&nbsp;System.Drawing;using&nbsp;System.Collections;using&nbsp;System.ComponentModel;using&nbsp;System.Windows.Forms;using&nbsp;System.Data;using&nbsp;System.I...&nbsp;&nbsp;<a href='http://www.cppblog.com/twzheng/articles/55562.html'>阅读全文</a><img src ="http://www.cppblog.com/twzheng/aggbug/55562.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/twzheng/" target="_blank">爱在江城</a> 2008-07-07 20:06 <a href="http://www.cppblog.com/twzheng/articles/55562.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>从 DataTable 对象中删除 DataRow 对象 遇到的问题</title><link>http://www.cppblog.com/twzheng/articles/43469.html</link><dc:creator>爱在江城</dc:creator><author>爱在江城</author><pubDate>Fri, 29 Feb 2008 07:12:00 GMT</pubDate><guid>http://www.cppblog.com/twzheng/articles/43469.html</guid><wfw:comment>http://www.cppblog.com/twzheng/comments/43469.html</wfw:comment><comments>http://www.cppblog.com/twzheng/articles/43469.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/twzheng/comments/commentRss/43469.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/twzheng/services/trackbacks/43469.html</trackback:ping><description><![CDATA[从 DataTable 对象中删除 DataRow 对象 遇到的问题<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我用DataTable的DataRow.Delete方法从表中删除一行时，界面是自动更新了（移除了刚才删除的行），DataRow.Count减了1，但是这时再次循环访问该DataTable，则抛出&#8220;不能通过已删除的行访问。。。&#8221;异常。在调试状态下查看DataTable删除操作后的数据显示，刚才删除行的位置确实没有数据，但该行并没有真正的删除，仍然占据着位置，所以再次循环访问到这行的时候会抛出异常。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用于从 DataTable 对象中删除 DataRow 对象的方法有两种：<span style="COLOR: #000000">DataRowCollection </span>对象的 Remove 方法和 DataRow 对象的 Delete 方法。Remove 方法从 DataRowCollection 中删除 DataRow，而 Delete 方法只将行标记为删除。当应用程序调用 AcceptChanges 方法时，才会发生实际的删除。通过使用 Delete，您可以在实际删除之前先以编程方式检查哪些行标记为删除。如果将行标记为删除，其 RowState 属性会设置为 Deleted。
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在将 DataSet 或 DataTable 与 DataAdapter 和关系型数据源一起使用时，用 DataRow 的 Delete 方法移除行。Delete 方法只是在 DataSet 或 DataTable 中将行标记为 Deleted，而不会移除它。而 DataAdapter 在遇到标记为 Deleted 的行时，会执行其 DeleteCommand 方法以在数据源中删除该行。然后，就可以用 AcceptChanges 方法永久移除该行。如果使用 Remove 删除该行，则该行将从表中完全移除，但 DataAdapter 不会在数据源中删除该行。</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.cppblog.com/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;DemonstrateDeleteRow()<br><img id=Codehighlighter1_36_1272_Open_Image onclick="this.style.display='none'; Codehighlighter1_36_1272_Open_Text.style.display='none'; Codehighlighter1_36_1272_Closed_Image.style.display='inline'; Codehighlighter1_36_1272_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_36_1272_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_36_1272_Closed_Text.style.display='none'; Codehighlighter1_36_1272_Open_Image.style.display='inline'; Codehighlighter1_36_1272_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_36_1272_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_36_1272_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;Create&nbsp;a&nbsp;simple&nbsp;DataTable&nbsp;with&nbsp;two&nbsp;columns&nbsp;and&nbsp;ten&nbsp;rows.</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;DataTable&nbsp;table&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;DataTable(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">table</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;DataColumn&nbsp;idColumn&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;DataColumn(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">id</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type.GetType(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">System.Int32</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;idColumn.AutoIncrement</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;DataColumn&nbsp;itemColumn&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;DataColumn(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">item</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type.GetType(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">System.String</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;table.Columns.Add(idColumn);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;table.Columns.Add(itemColumn);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;Add&nbsp;ten&nbsp;rows.</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;DataRow&nbsp;newRow;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&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&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_510_619_Open_Image onclick="this.style.display='none'; Codehighlighter1_510_619_Open_Text.style.display='none'; Codehighlighter1_510_619_Closed_Image.style.display='inline'; Codehighlighter1_510_619_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_510_619_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_510_619_Closed_Text.style.display='none'; Codehighlighter1_510_619_Open_Image.style.display='inline'; Codehighlighter1_510_619_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_510_619_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_510_619_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newRow&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;table.NewRow();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newRow[</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">item</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: #000000">"</span><span style="COLOR: #000000">Item&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;i;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.Rows.Add(newRow);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;table.AcceptChanges();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;DataRowCollection&nbsp;itemColumns&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;table.Rows;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;itemColumns[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].Delete();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;itemColumns[</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">].Delete();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;itemColumns[</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">].Delete();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;itemColumns[</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">].Delete();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(itemColumns[</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">].RowState.ToString());<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;Reject&nbsp;changes&nbsp;on&nbsp;one&nbsp;deletion.</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;itemColumns[</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">].RejectChanges();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;Change&nbsp;the&nbsp;value&nbsp;of&nbsp;the&nbsp;column&nbsp;so&nbsp;it&nbsp;stands&nbsp;out.</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;itemColumns[</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">item</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: #000000">"</span><span style="COLOR: #000000">Deleted,&nbsp;Undeleted,&nbsp;Edited</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;Accept&nbsp;changes&nbsp;on&nbsp;others.</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;table.AcceptChanges();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;Print&nbsp;the&nbsp;remaining&nbsp;row&nbsp;values.</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">foreach</span><span style="COLOR: #000000">(DataRow&nbsp;row&nbsp;</span><span style="COLOR: #0000ff">in</span><span style="COLOR: #000000">&nbsp;table.Rows)<br><img id=Codehighlighter1_1208_1270_Open_Image onclick="this.style.display='none'; Codehighlighter1_1208_1270_Open_Text.style.display='none'; Codehighlighter1_1208_1270_Closed_Image.style.display='inline'; Codehighlighter1_1208_1270_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1208_1270_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1208_1270_Closed_Text.style.display='none'; Codehighlighter1_1208_1270_Open_Image.style.display='inline'; Codehighlighter1_1208_1270_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1208_1270_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1208_1270_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(row[</span><span style="COLOR: #000000">0</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">\table</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;row[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<img src ="http://www.cppblog.com/twzheng/aggbug/43469.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/twzheng/" target="_blank">爱在江城</a> 2008-02-29 15:12 <a href="http://www.cppblog.com/twzheng/articles/43469.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WPF简介、前景分析、影响程度、WPF资料</title><link>http://www.cppblog.com/twzheng/articles/37593.html</link><dc:creator>爱在江城</dc:creator><author>爱在江城</author><pubDate>Fri, 30 Nov 2007 16:36:00 GMT</pubDate><guid>http://www.cppblog.com/twzheng/articles/37593.html</guid><wfw:comment>http://www.cppblog.com/twzheng/comments/37593.html</wfw:comment><comments>http://www.cppblog.com/twzheng/articles/37593.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/twzheng/comments/commentRss/37593.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/twzheng/services/trackbacks/37593.html</trackback:ping><description><![CDATA[<strong>WPF简介、前景分析、影响程度、WPF资料<br></strong>摘自：http://www.cnblogs.com/tonyqus<br><br><strong>WPF简介<br><br></strong>WPF的全称是Windows Presentation Foundation，是微软新发布的Vista操作系统的三大核心开发库之一，其主要负责的是图形显示，所以叫Presentation（呈现）。
<p>作为新的图形引擎，WPF是基于DirectX的，当然增加了很多新的功能。其2D和3D引擎的强大看看Vista的界面就明白了，再加上其对Aero图形引擎的支持，更加让你刚到神奇。顺便提一下，Aero是专门为3D桌面开发的引擎，可以让桌面实现神奇的3D翻转，这绝对是操作系统有史以来的一次神奇尝试，虽然对硬件配置的要求也是惊人的，此前已有相关报道称，Vista对显卡十分挑剔就是出于运行Aero的考虑。</p>
<p><strong>WPF前景分析</strong></p>
<p>WPF其实不仅仅是图形引擎而已，它将给Windows应用程序的开发带来一次革命，因为新的架构提供了一种全新的开发模式。当然对于普通用户而言，最直观的就是界面越来越漂亮，看起来越来越舒服了；但对于开发人员而言，界面显示和代码将更好的得到分离，这与从前的桌面应用程序开发有很多不同（界面设置和代码是融合在一起的），这是比较具有革命性的改变之一。还有就是桌面应用程序和浏览器应用程序的融合，根据ms的承诺，正在开发中的WPF/E，即WPF Everywhere版本，将为基于WPF的应用程序提供全面的浏览器支持，这意味着未来开发出的应用程序将可以基于浏览器在不同的操作系统上运行，当然由于目前还在开发中，我们并不确定会不会有一定的限制，根据WPF/E开发组的定义，WPF/E仍然是WPF的子集，而不是后继版本。总体而言，WPF的前景应该是一片光明。</p>
<p><strong>目前开发界的对WPF响应程度</strong></p>
<p>目前已有很多人开始考虑或者已经转向WPF，一场新的学习热潮已经开始。但根据我最近的学习和了解，国内关于WPF的资料很少，除了msdn提供的资料以外，基本都是来自国外的资料，有些则是国外开发人员blog上的资料，当然都是英文的。因此如果现在能够引进一些WPF的书绝对是很好的时机。而且国外目前的几本WPF书也是刚刚上市，如果我们可以尽快引进的话，绝对可以帮助国内开发人员在最短时间内赶上国际步伐。</p>
<p><strong>目前微软针对WPF提供的服务和支持</strong></p>
<p>随着Vista RTM的发布，微软新一轮的技术推广已经开始。其实在此之前，WPF已经有很大的推广，因为CTP版本已经发布了有一段日子了。当然很多开发人员主要以技术研究为主，也有少数公司已经开始从事基于WPF的产品研发工作。</p>
<p>1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 目前WPF的正式版本已经发布（随.net framework 3.0正式版发布），你可以从msdn上免费下载</p>
<p>2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 相应的技术支持已经开始，但目前仅限于大客户，主要做售前技术支持，对于普通开发人员的技术支持可能要等到明年2月份才会开始（个人知道的情况，请以微软官方技术支持网站发布的信息为准）</p>
<p>3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WPF的VS2005插件目前还只有社区预览版（CTP版），也是从msdn上免费下载的，但正式版恐怕还要等一段时间，但使用CTP版本确实已经可以在VS2005中进行所见即所得的WPF开发。</p>
<p><strong>目前已经上市或即将上市的WPF书</strong></p>
<p>1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Applications = Code + Markup: A Guide to the Microsoft Windows Presentation Foundation </p>
<p><a href="http://www.amazon.com/Applications-Code-Markup-Presentation-Foundation/dp/0735619573/sr=8-1/qid=1164814449/ref=pd_bbs_1/104-6804148-3392750?ie=UTF8&amp;s=books"><font color=#1d58d1>http://www.amazon.com/Applications-Code-Markup-Presentation-Foundation/dp/0735619573/sr=8-1/qid=1164814449/ref=pd_bbs_1/104-6804148-3392750?ie=UTF8&amp;s=books</font></a></p>
<p>在WPF官方网站（<a href="http://wpf.netfx3.com/"><font color=#1d58d1>http://wpf.netfx3.com</font></a>）上推荐的书，不过我没看过。</p>
<p>2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Programming Windows Presentation Foundation</p>
<p><a href="http://www.amazon.com/Programming-Windows-Presentation-Foundation-Chris/dp/0596101139/sr=8-2/qid=1164814449/ref=pd_bbs_2/104-6804148-3392750?ie=UTF8&amp;s=books"><font color=#1d58d1>http://www.amazon.com/Programming-Windows-Presentation-Foundation-Chris/dp/0596101139/sr=8-2/qid=1164814449/ref=pd_bbs_2/104-6804148-3392750?ie=UTF8&amp;s=books</font></a></p>
<p>这本书已经出了一段时间，是基于WPF的CTP版本写的，所以其中的sample可能在正式版无法运行，但总体而言还是本不错的参考书。据可靠消息，作者已经针对WPF正式版做了修改，并在不久将出一本新书，但目前还不清楚新书的具体内容有多大的改变，估计是修改+扩展。</p>
<p>3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Windows Presentation Foundation Unleashed (WPF) (Unleashed)</p>
<p><a href="http://www.amazon.com/Windows-Presentation-Foundation-Unleashed-WPF/dp/0672328917/sr=8-5/qid=1164814449/ref=pd_bbs_sr_5/104-6804148-3392750?ie=UTF8&amp;s=books"><font color=#1d58d1>http://www.amazon.com/Windows-Presentation-Foundation-Unleashed-WPF/dp/0672328917/sr=8-5/qid=1164814449/ref=pd_bbs_sr_5/104-6804148-3392750?ie=UTF8&amp;s=books</font></a></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Adam Nathan出的书，Adam是WPF Team的成员，绝对的WPF专家，这本书绝对值得期待！</p>
<p><strong>&nbsp;WPF博客列表<br></strong>大家直接查看<a href="http://blogs.msdn.com/tims/articles/475132.aspx"><strong><font color=#1d58d1>http://blogs.msdn.com/tims/articles/475132.aspx</font></strong></a>，我就不转载了。&nbsp;</p>
<img src ="http://www.cppblog.com/twzheng/aggbug/37593.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/twzheng/" target="_blank">爱在江城</a> 2007-12-01 00:36 <a href="http://www.cppblog.com/twzheng/articles/37593.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C#制作WinForm控件 </title><link>http://www.cppblog.com/twzheng/articles/37361.html</link><dc:creator>爱在江城</dc:creator><author>爱在江城</author><pubDate>Mon, 26 Nov 2007 18:31:00 GMT</pubDate><guid>http://www.cppblog.com/twzheng/articles/37361.html</guid><wfw:comment>http://www.cppblog.com/twzheng/comments/37361.html</wfw:comment><comments>http://www.cppblog.com/twzheng/articles/37361.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/twzheng/comments/commentRss/37361.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/twzheng/services/trackbacks/37361.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: C#制作WinForm控件&nbsp;&nbsp; 摘自：http://www.cnblogs.com/salonliudong自定义控件基础知识一 、概述Windows 窗体控件是可再次使用的组件，它们封装了用户界面功能，并且可以用于客户端 Windows 应用程序。&#8220;Windows 窗体&#8221;不仅提供了许多现成控件，还提供了自行开发控件的基础结构。可以组合现有控...&nbsp;&nbsp;<a href='http://www.cppblog.com/twzheng/articles/37361.html'>阅读全文</a><img src ="http://www.cppblog.com/twzheng/aggbug/37361.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/twzheng/" target="_blank">爱在江城</a> 2007-11-27 02:31 <a href="http://www.cppblog.com/twzheng/articles/37361.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>