﻿<?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>博客园-阿拉伯顶峰</title><link>http://www.cnblogs.com/0hi/</link><description>信息化时代，资源共享，谁不知.com计算机世界，程序设计，我选择.net</description><language>zh-cn</language><lastBuildDate>Tue, 07 Oct 2008 09:53:42 GMT</lastBuildDate><pubDate>Tue, 07 Oct 2008 09:53:42 GMT</pubDate><ttl>60</ttl><item><title>6月上旬项目小结</title><link>http://www.cnblogs.com/0hi/archive/2008/06/18/1225002.html</link><dc:creator>阿拉伯顶峰</dc:creator><author>阿拉伯顶峰</author><pubDate>Wed, 18 Jun 2008 13:48:00 GMT</pubDate><guid>http://www.cnblogs.com/0hi/archive/2008/06/18/1225002.html</guid><wfw:comment>http://www.cnblogs.com/0hi/comments/1225002.html</wfw:comment><comments>http://www.cnblogs.com/0hi/archive/2008/06/18/1225002.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/0hi/comments/commentRss/1225002.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/0hi/services/trackbacks/1225002.html</trackback:ping><description><![CDATA[其实也没什么写的，半个月来一直在修改细节块，在POS系统的收银块动了近一个月了，处理快捷键，鼠标，总之业务逻辑细的让人窒息，再加上在WPF，第三方插件上动土，呼。。。。。。，不过半个月没写文章了，还是强烈要求自己今天随笔一篇。<br />
<br />
论点一：wcf程序调试<br />
在开发wcf应用程序是，服务可以寄存在应用程序上，或者windows 服务，或者iis，俺的项目现在是实现了这些常见的方式的。那么在调试的时候，我们只能调试启动一个project，要么启动服务端，要么启动客户端。开始，我是直接运行服务端应用程序，然后调试客户端，这样在服务端运行正常的情况下，开发客户端是没有问题的。不过由于单元测试没写全，服务端的服务还是有些问题，那么在调试客户端的时候是无法跟踪服务端的BUG的。由于一直debug客户端，形成了惯性作风了，就是想不出这么跟踪出服务端的方法。在那一刹那间，有同事说到：&#8220;反过来吗！debug服务端，然后直接运行编译好的客户端&#8221;。看来，以后脑瓜子要灵活点。。。。<br />
<br />
论点二：创建用户控件事件<br />
编程已经近两年了，一直是用哪个技术点，学那个技术点。以前只会注册，实现控件事件，还真的没做过创建事件。前面有些时间想了解，但是总不愿发多点时间，不过，要用的时候马上也弄明白了。其实，给一个控件创建事件和我做项目用哪个技术点一样。需要用到什么就创建（学习）什么。<br />
首先，你要用一个控件的事件，你首先要注册一个事件<br />
<div class="cnblogs_code"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">this</span><span style="color: #000000">.ucDemo.DemoSelected&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DemoEventHandle(ucDemo_DemoSelected);</span></div>
<br />
在注册这个事件之前，你要先在控件里面什么一个事件<br />
<div class="cnblogs_code"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">event</span><span style="color: #000000">&nbsp;DemoEventHandle&nbsp;DemoSelected;</span></div>
<br />
像创建一个对象一样，New一个对象New 关键字后面接类名，创建一个事件New 关键字后面的DemoEventHandle是DemoSelected事件的代理名。<br />
那么，我们需要创建一个代理<br />
<div class="cnblogs_code"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">delegate</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;DemoEventHandle(</span><span style="color: #0000ff">object</span><span style="color: #000000">&nbsp;sender,DemoArg&nbsp;e);</span></div>
<br />
像一般的Click事件那样，代理有两个对象，而第一个对象是事件当事者，另一个则是相关事件信息。我们还要做的是创建那个储存事件相关参数的对象，它也是一个类。<br />
<div class="cnblogs_code"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;DemoArg&nbsp;:&nbsp;System.EventArgs<br />
<img id="Codehighlighter1_48_306_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_48_306_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_48_306_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_48_306_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_48_306_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_48_306_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_48_306_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_48_306_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_48_306_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.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_48_306_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.cnblogs.com/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;</span><span style="color: #0000ff">enum</span><span style="color: #000000">&nbsp;DemoType<br />
<img id="Codehighlighter1_87_154_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_87_154_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_87_154_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_87_154_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_87_154_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_87_154_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_87_154_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_87_154_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_87_154_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.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_87_154_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width,<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hight,<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color<br />
<img src="http://www.cnblogs.com/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.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/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;DemoArg(DemoType&nbsp;demoType)<br />
<img id="Codehighlighter1_206_251_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_206_251_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_206_251_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_206_251_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_206_251_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_206_251_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_206_251_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_206_251_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_206_251_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.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_206_251_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DemoType1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;demoType;<br />
<img src="http://www.cnblogs.com/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.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_287_300_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_287_300_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_287_300_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_287_300_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_287_300_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_287_300_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_287_300_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_287_300_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;DemoType&nbsp;DemoType1&nbsp;</span><span id="Codehighlighter1_287_300_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.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_287_300_Open_Text"><span style="color: #000000">{&nbsp;</span><span style="color: #0000ff">get</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<br />
这样，一个控件的事件基本上装载完成了。不过，在控件内部，我们怎么激活，触发事件呢，下面假设鼠标双击控件就激活DemoSelecte事件。<br />
<div class="cnblogs_code"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;UserControl_MouseDoubleClick(</span><span style="color: #0000ff">object</span><span style="color: #000000">&nbsp;sender,&nbsp;MouseButtonEventArgs&nbsp;e)<br />
<img id="Codehighlighter1_89_543_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_89_543_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_89_543_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_89_543_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_89_543_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_89_543_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_89_543_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_89_543_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_89_543_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.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_89_543_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InvoiceItemCellSelectedArg.InvoiceItemCellType&nbsp;type&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;InvoiceItemCellSelectedArg.InvoiceItemCellType.SKU;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/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;type&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;InvoiceItemCellSelectedArg.InvoiceItemCellType.color;<br />
<img src="http://www.cnblogs.com/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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InvoiceItemCellSelectedArg&nbsp;er&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;InvoiceItemCellSelectedArg(type);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">this</span><span style="color: #000000">.CellSelected&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 id="Codehighlighter1_473_533_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_473_533_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_473_533_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_473_533_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_473_533_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_473_533_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_473_533_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_473_533_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_473_533_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.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_473_533_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.CellSelected(</span><span style="color: #0000ff">this</span><span style="color: #000000">,&nbsp;er);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<br />
<br />
那么在第一步注册了DemoSelected事件后，就可以实现DemoSelected方法体了。<br />
<div class="cnblogs_code"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;ucDemo_DemoSelected(</span><span style="color: #0000ff">object</span><span style="color: #000000">&nbsp;sender,&nbsp;DemoArg&nbsp;e)<br />
<img id="Codehighlighter1_67_599_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_67_599_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_67_599_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_67_599_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_67_599_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_67_599_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_67_599_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_67_599_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_67_599_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.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_67_599_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">switch</span><span style="color: #000000">&nbsp;(e.DemoType)<br />
<img id="Codehighlighter1_113_589_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_113_589_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_113_589_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_113_589_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_113_589_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_113_589_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_113_589_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_113_589_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_113_589_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.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_113_589_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span><span style="color: #000000">&nbsp;InvoiceItemCellSelectedArg.InvoiceItemCellType.color&nbsp;:<br />
<img src="http://www.cnblogs.com/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.Write(</span><span style="color: #800000">"</span><span style="color: #800000">color</span><span style="color: #800000">"</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;<br />
</span><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break</span><span style="color: #000000">;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span><span style="color: #000000">&nbsp;InvoiceItemCellSelectedArg.InvoiceItemCellType.width:<br />
<img src="http://www.cnblogs.com/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.Write(</span><span style="color: #800000">"</span><span style="color: #800000">width</span><span style="color: #800000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.cnblogs.com/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;</span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span><span style="color: #000000">&nbsp;InvoiceItemCellSelectedArg.InvoiceItemCellType.hight:<br />
<img src="http://www.cnblogs.com/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.Write(</span><span style="color: #800000">"</span><span style="color: #800000">hight</span><span style="color: #800000">"</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break</span><span style="color: #000000">;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<br />
<br />
时间不早了，要下了<img src="http://www.cnblogs.com/Emoticons/xd/003.gif"  alt="" /><br />
<img src ="http://www.cnblogs.com/0hi/aggbug/1225002.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42827/" target="_blank">[新闻]史上九大最强网络黑客</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>WPF 开发前学习（一）</title><link>http://www.cnblogs.com/0hi/archive/2008/06/18/1133404.html</link><dc:creator>阿拉伯顶峰</dc:creator><author>阿拉伯顶峰</author><pubDate>Wed, 18 Jun 2008 12:42:00 GMT</pubDate><guid>http://www.cnblogs.com/0hi/archive/2008/06/18/1133404.html</guid><wfw:comment>http://www.cnblogs.com/0hi/comments/1133404.html</wfw:comment><comments>http://www.cnblogs.com/0hi/archive/2008/06/18/1133404.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/0hi/comments/commentRss/1133404.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/0hi/services/trackbacks/1133404.html</trackback:ping><description><![CDATA[<P>在老实人面前我不敢撒谎：在07年6月份的时候已经玩过WPF了。不过，当时我还在实习，工作量不是很大，也就是玩玩刚发布没多久的.net 3.0新特性罢了。现在不同了，得动真格了。呵呵，真功夫了。</P>
<P>话说当年我用Blend做了些页面花俏的、后缀为xaml的文件，保存后双击就可以在IE上直接浏览。后来换了个工具ZAM 3D做了些3D效果的类似东东，在IE上看到自己做的3D后异常兴奋。后来写了篇随笔叫silverlight的3D视觉，再后来被人指出我应用的是一个WPF。其实当时我真的不懂。:)</P>
<P>都说&#8216;不懂就要问&#8217;，不过我觉得现在话得改改了，应该说&#8216;不懂就要google&#8217;。好了，闲话少说。下面我们说WPF</P>
<P>首先我google了一些资料，下面提供一个WPF中文版的入门<A href="http://files.cnblogs.com/0hi/wpf%e5%85%a5%e9%97%a8.pdf">http://files.cnblogs.com/0hi/wpf%e5%85%a5%e9%97%a8.pdf</A>&nbsp;也有英文的，如有需要，请email我。</P>
<P>研究的细节就不谈了，一天下来感觉</P>
<P>1、.NET X革命、X世界真好。</P>
<P>2、我们仍然在.cs文件里面写事件写方法。</P>
<P>3、开发windows 应用程序越来越像开发b/s应用程序了。以前很少关注windows应用程序的界面设计，现在感觉windows应用程序的页面设计也是一门不错的活了。</P>
<P>4、.NET开发越来越灵活了</P>
<P mce_keep="true">&nbsp;</P>
<P>鉴于WPF专注在展现，我建议用blend见工程，画好界面，然后再visual studio里面写代码。难道你不绝的美工与编码人员更专业了吗？</P>  <img src ="http://www.cnblogs.com/0hi/aggbug/1133404.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42827/" target="_blank">[新闻]史上九大最强网络黑客</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>WPF 遇到的性能问题</title><link>http://www.cnblogs.com/0hi/archive/2008/06/18/1203582.html</link><dc:creator>阿拉伯顶峰</dc:creator><author>阿拉伯顶峰</author><pubDate>Wed, 18 Jun 2008 12:42:00 GMT</pubDate><guid>http://www.cnblogs.com/0hi/archive/2008/06/18/1203582.html</guid><wfw:comment>http://www.cnblogs.com/0hi/comments/1203582.html</wfw:comment><comments>http://www.cnblogs.com/0hi/archive/2008/06/18/1203582.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/0hi/comments/commentRss/1203582.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/0hi/services/trackbacks/1203582.html</trackback:ping><description><![CDATA[摘要: MSDN描述：使用 BitmapEffect 使呈现的内容模糊不清或浮现出来，或对其应用其他视觉效果。&nbsp;&nbsp;<a href='http://www.cnblogs.com/0hi/archive/2008/06/18/1203582.html'>阅读全文</a><img src ="http://www.cnblogs.com/0hi/aggbug/1203582.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42827/" target="_blank">[新闻]史上九大最强网络黑客</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>WPF 中的树应用</title><link>http://www.cnblogs.com/0hi/archive/2008/06/18/1207911.html</link><dc:creator>阿拉伯顶峰</dc:creator><author>阿拉伯顶峰</author><pubDate>Wed, 18 Jun 2008 12:42:00 GMT</pubDate><guid>http://www.cnblogs.com/0hi/archive/2008/06/18/1207911.html</guid><wfw:comment>http://www.cnblogs.com/0hi/comments/1207911.html</wfw:comment><comments>http://www.cnblogs.com/0hi/archive/2008/06/18/1207911.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/0hi/comments/commentRss/1207911.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/0hi/services/trackbacks/1207911.html</trackback:ping><description><![CDATA[摘要: MSDN中描述：<br>在许多技术中，元素和组件按照树结构的形式组织，在这种结构中，开发人员可以直接操作树来影响应用程序的呈现。Windows Presentation Foundation (WPF) 还使用了多个树结构术语来定义程序元素之间的关系。&nbsp;&nbsp;<a href='http://www.cnblogs.com/0hi/archive/2008/06/18/1207911.html'>阅读全文</a><img src ="http://www.cnblogs.com/0hi/aggbug/1207911.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42827/" target="_blank">[新闻]史上九大最强网络黑客</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>让方法返回多个参数</title><link>http://www.cnblogs.com/0hi/archive/2008/06/18/1208317.html</link><dc:creator>阿拉伯顶峰</dc:creator><author>阿拉伯顶峰</author><pubDate>Wed, 18 Jun 2008 12:42:00 GMT</pubDate><guid>http://www.cnblogs.com/0hi/archive/2008/06/18/1208317.html</guid><wfw:comment>http://www.cnblogs.com/0hi/comments/1208317.html</wfw:comment><comments>http://www.cnblogs.com/0hi/archive/2008/06/18/1208317.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/0hi/comments/commentRss/1208317.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/0hi/services/trackbacks/1208317.html</trackback:ping><description><![CDATA[<P>刚刚写代码时，把一个方法写了100来行，并且还在不断增加中，于是准备把其中的代码段封装成一个方法。问题是，封装的这段代码要处理两个变量，于是google了一下。MSDN有办法。。。。。。</P>
<P>我们很清楚，一个方法只能返回一个参数，如:public string getValue(string a,string b){},返回一个字符串。但是为什么能传进来两个参数呢，有点不公平哦!呵呵。。。。。。。</P>
<P>这里说要让方法返回多个参数，那是谬论啦！实际上，也是重提参数传递，又名《传递值类型参数，传递引用类型参数》。这里我们要做到&#8216;让方法返回多个参数&#8217;de 功效，我们就要使用引用传递参数，也就要用到ref和out关键字,如：</P>
<P>public string getValue(ref string a,ref string b){}</P>
<P>public string getValue(out string a,out string b){}</P>
<P>而关于out与ref的区别在于out，<STRONG>out</STRONG> 参数传递的变量不需要在传递之前进行初始化。更多资料浏览MSDN......</P>
<P>这里笔记笔记.</P>
<P>out描述：<A href="http://msdn.microsoft.com/zh-cn/library/t3c3bfhx(VS.80).aspx">http://msdn.microsoft.com/zh-cn/library/t3c3bfhx(VS.80).aspx</A></P>
<P>ref描述：<A href="http://msdn.microsoft.com/zh-cn/library/14akc2c7(VS.80).aspx">http://msdn.microsoft.com/zh-cn/library/14akc2c7(VS.80).aspx</A></P>
<P>传递值类型参数：<A href="http://msdn.microsoft.com/zh-cn/library/9t0za5es(VS.80).aspx">http://msdn.microsoft.com/zh-cn/library/9t0za5es(VS.80).aspx</A></P>
<P>传递引用类型参数：<A href="http://msdn.microsoft.com/zh-cn/library/s6938f28(VS.80).aspx">http://msdn.microsoft.com/zh-cn/library/s6938f28(VS.80).aspx</A></P>
<P>好了，要睡觉了</P>  <img src ="http://www.cnblogs.com/0hi/aggbug/1208317.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42827/" target="_blank">[新闻]史上九大最强网络黑客</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item></channel></rss>