﻿<?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-&lt;span class="style11"&gt;★33°空间‰&lt;/span&gt;-文章分类-C#文章</title><link>http://www.blogjava.net/yeiwei/category/15461.html</link><description> &lt;span class="style14"&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;----气度影响格局-性格决定命运&lt;br&gt;
 &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;----智力比知识重要，素质比智力重要，觉悟比素质更重要 &lt;/span&gt;</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 08:10:00 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 08:10:00 GMT</pubDate><ttl>60</ttl><item><title>一个net代码向java 的代码转换工具</title><link>http://www.blogjava.net/yeiwei/articles/71972.html</link><dc:creator>圣域飞侠</dc:creator><author>圣域飞侠</author><pubDate>Tue, 26 Sep 2006 06:41:00 GMT</pubDate><guid>http://www.blogjava.net/yeiwei/articles/71972.html</guid><wfw:comment>http://www.blogjava.net/yeiwei/comments/71972.html</wfw:comment><comments>http://www.blogjava.net/yeiwei/articles/71972.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yeiwei/comments/commentRss/71972.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yeiwei/services/trackbacks/71972.html</trackback:ping><description><![CDATA[<p>
				<strong>终于出现了.net代码向java 的代码转换工具.</strong>
				<br />Application  Web application , console  都可以转。 <br />象作者dannyc  说的<br />"Together we can translate every .NET application into Java !" </p>
		<p>NET2java  作为 Netbeans 5.0的plugin 提供的, 要用NET2java 你就得先下Netbeans </p>
		<p>5.0<br />下面是我的安装步骤<br />1 .下载Netbeans 5.0<br />2. 安装Netbeans 5.0, <font color="#ff0000">必需用jdk1.5.07 version 以上</font>, NET2java的code 用jdk1.5.07的</p>
		<p>新方法. <br />3. 安装com-sun-dn-DNPlugin.nbm plugin 到Netbeans 5.0这个很简单, 不会看Netbeans 5.0的help<br />里面有案可说明的. <br /><strong>4. 安装com-sun-dn-DNPlugin.nbm 后把dnj_translation_library_061406.zip unzip 到C:\Documents And Settings\Trove\dnj\</strong><br /> 下面. <br />5. 在Netbeans 5.0的 file menu 就多了一项 import </p>
		<p>
				<br />还没有command line tool ，dannyc 说的 <br />I'm really sorry if you don't like NetBeans, I'll put in the command line version of NET2Java soon<br />希望他早点realse  command tool . </p>
		<p>example 能转换， 最后改一下 main的code就好了. </p>
		<p>
				<br />转换我自己的project 就没成功. 总有下面的exception ，我给dannyc发mail了, 真希望他能尽快fix这个bug.</p>
		<p>
				<br />java.io.FileNotFoundException: D:\try\net2java\src\Tomi\Data\Minosse\GTTableInfoDataSource:GTDataSource.java (The filename, directory name, or volume label syntax is incorrect)<br /> at java.io.FileOutputStream.open(Native Method)<br /> at java.io.FileOutputStream.&lt;init&gt;(FileOutputStream.java:179)<br /> (RequestProcessor.java:493)<br /> at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:926)</p>
		<p>下载<br />net代码向java 的代码转换工具<br />dnj_translation_library_061406</p>
		<p>
				<br />
				<a href="https://net2java.dev.java.net/files/documents/5085/36196/dnj_translation_library_061406.zip">https://net2java.dev.java.net/files/documents/5085/36196/dnj_translation_library_061406.zip</a>
		</p>
		<p>
				<br />com-sun-dn-DNPlugin.nbm<br /><a href="https://net2java.dev.java.net/files/documents/5085/36197/com-sun-dn-DNPlugin.nbm">https://net2java.dev.java.net/files/documents/5085/36197/com-sun-dn-DNPlugin.nbm</a></p>
		<p>
				<br />dnj_samples_053006.zip<br /><a href="https://net2java.dev.java.net/files/documents/5085/36198/dnj_samples_053006.zip">https://net2java.dev.java.net/files/documents/5085/36198/dnj_samples_053006.zip</a></p><img src ="http://www.blogjava.net/yeiwei/aggbug/71972.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yeiwei/" target="_blank">圣域飞侠</a> 2006-09-26 14:41 <a href="http://www.blogjava.net/yeiwei/articles/71972.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C#导出Excel源码</title><link>http://www.blogjava.net/yeiwei/articles/70760.html</link><dc:creator>圣域飞侠</dc:creator><author>圣域飞侠</author><pubDate>Wed, 20 Sep 2006 05:02:00 GMT</pubDate><guid>http://www.blogjava.net/yeiwei/articles/70760.html</guid><wfw:comment>http://www.blogjava.net/yeiwei/comments/70760.html</wfw:comment><comments>http://www.blogjava.net/yeiwei/articles/70760.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yeiwei/comments/commentRss/70760.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yeiwei/services/trackbacks/70760.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 网上反应比较强烈。本人也因为工作需要的原因，将其封装了成了ExcelManager。企业当中，做报表的数据来源肯定就是数据库了。该ExcelManager目前只提供Ms Sql Server的支持，因为我们公司使用的就是ms sql server 2000 了。封装后的ExcelManager，你只需传入你的报表表头（一级表头、二级表头。大部分有两级也就够了。如果你有多个，可自行修改该类.）,并将...&nbsp;&nbsp;<a href='http://www.blogjava.net/yeiwei/articles/70760.html'>阅读全文</a><img src ="http://www.blogjava.net/yeiwei/aggbug/70760.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yeiwei/" target="_blank">圣域飞侠</a> 2006-09-20 13:02 <a href="http://www.blogjava.net/yeiwei/articles/70760.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>类似QQ的垂直菜单(动态) </title><link>http://www.blogjava.net/yeiwei/articles/70756.html</link><dc:creator>圣域飞侠</dc:creator><author>圣域飞侠</author><pubDate>Wed, 20 Sep 2006 04:52:00 GMT</pubDate><guid>http://www.blogjava.net/yeiwei/articles/70756.html</guid><wfw:comment>http://www.blogjava.net/yeiwei/comments/70756.html</wfw:comment><comments>http://www.blogjava.net/yeiwei/articles/70756.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yeiwei/comments/commentRss/70756.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yeiwei/services/trackbacks/70756.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 步骤:1.新建一个页面,假如说叫VerticalMenu2.把html代码copy到html代码区3.把LoadTopMenu方法copy到cs代码区4.运行即可-------------------------------------1.html代码																																																		&lt;						...&nbsp;&nbsp;<a href='http://www.blogjava.net/yeiwei/articles/70756.html'>阅读全文</a><img src ="http://www.blogjava.net/yeiwei/aggbug/70756.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yeiwei/" target="_blank">圣域飞侠</a> 2006-09-20 12:52 <a href="http://www.blogjava.net/yeiwei/articles/70756.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C#下实现在线升级</title><link>http://www.blogjava.net/yeiwei/articles/70754.html</link><dc:creator>圣域飞侠</dc:creator><author>圣域飞侠</author><pubDate>Wed, 20 Sep 2006 04:51:00 GMT</pubDate><guid>http://www.blogjava.net/yeiwei/articles/70754.html</guid><wfw:comment>http://www.blogjava.net/yeiwei/comments/70754.html</wfw:comment><comments>http://www.blogjava.net/yeiwei/articles/70754.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yeiwei/comments/commentRss/70754.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yeiwei/services/trackbacks/70754.html</trackback:ping><description><![CDATA[
		<p>
				<font size="1">//这是一个webservice</font>
		</p>
		<p>
				<font size="1">private AppUpdate.UpdateServ  UpdateSvr;</font>
		</p>
		<p>
				<br />
				<font size="1">  private void button1_Click(object sender, System.EventArgs e)<br />  {<br />    <br />   if(LinkWebServices()==true)<br />   {<br />    this.label1.Text="连接服务器....... PASS";<br />    <br />    if(CheckVer()==true)<br />    {<br />     this.label2.Text="检查最新版本并下载.......PASS";<br />                   <br />    }<br />    else<br />    {<br />     this.label2.Text="检查最新版本并下载.......FAIL";<br />    }<br />   }<br />   else<br />   {<br />    this.label1.Text="连接服务器.......FAIL";<br />   }<br />  }</font>
		</p>
		<p>
				<font size="1">//这是用来与升级服务器建立连接<br />  private bool LinkWebServices()<br />  {<br />   try<br />   {<br />    UpdateSvr=new UpdateServ();<br />    return true;<br />   }<br />   catch<br />   {<br />    return false;<br />   }<br />  }</font>
		</p>
		<p>
				<font size="1">//调用webservice用来检查是不是有最新的版本<br />  private bool CheckVer()<br />  {<br />   string path =Application.StartupPath;<br />   try<br />   {<br />    VersionCheck(path);<br />    return true;<br />   }<br />   catch(Exception ex)<br />   {<br />    MessageBox.Show(ex.ToString());<br />    return false;<br />   }<br />  }</font>
		</p>
		<p>
				<font size="1">  private void VersionCheck(string desPath)<br />  {<br />   try<br />   {<br />    #region 查看文件和目录<br />    if(!desPath.EndsWith(@"\"))<br />     desPath += @"\";</font>
		</p>
		<p>
				<font size="1">    if(!System.IO.Directory.Exists(desPath))<br />    {<br />     System.IO.Directory.CreateDirectory(desPath);<br />    }</font>
		</p>
		<p>
				<font size="1">    string tempPath = desPath + @"tempDesPathCache\";</font>
		</p>
		<p>
				<font size="1">    if(System.IO.Directory.Exists(tempPath))<br />    {<br />     System.IO.Directory.Delete(tempPath,true);<br />     System.IO.Directory.CreateDirectory(tempPath);<br />    }<br />    else<br />     System.IO.Directory.CreateDirectory(tempPath);</font>
		</p>
		<p>
				<font size="1">    if(!System.IO.File.Exists(desPath + "UpdateConfig.xml"))<br />    {<br />     System.Xml.XmlDocument updateConfig = new System.Xml.XmlDocument();<br />     updateConfig.LoadXml(@"&lt;root&gt;&lt;/root&gt;");<br />     updateConfig.Save(desPath + "UpdateConfig.xml");<br />    }<br />    #endregion</font>
		</p>
		<p>
				<font size="1">   <br />    System.Xml.XmlDocument serverXmlDoc = UpdateSvr.AppUpdateVertion();<br />    System.Xml.XmlDocument localXmlDoc = new System.Xml.XmlDocument();<br />    localXmlDoc.Load(desPath + "UpdateConfig.xml");<br />    bool newVersionExist = false;<br />    bool moduleExist = false;<br />    System.Xml.XmlNode serverNode0 = serverXmlDoc.ChildNodes[0];<br />    System.Xml.XmlNode localNode0 = localXmlDoc.ChildNodes[0];<br />    foreach(System.Xml.XmlNode serverNode in serverNode0)<br />    {<br />     moduleExist = false;<br />     foreach(System.Xml.XmlNode localNode in localNode0)<br />     {<br />      //找到对应模块<br />      if(localNode.ChildNodes[0].InnerText == serverNode.ChildNodes[0].InnerText)<br />      {<br />       moduleExist = true;<br />       //版本号判断<br />       if(localNode.ChildNodes[1].InnerText.CompareTo(serverNode.ChildNodes[1].InnerText) &lt; 0)<br />       {<br />        newVersionExist = true;<br />        if(System.Configuration.ConfigurationSettings.AppSettings["NetStyle"].ToString()=="internet")<br />        {<br />         DownloadFile(serverNode.ChildNodes[2].InnerText,tempPath + serverNode.ChildNodes[0].InnerText);<br />        }<br />        else<br />        {<br />         DownloadFile(serverNode.ChildNodes[3].InnerText,tempPath + serverNode.ChildNodes[0].InnerText);<br />        }<br />       }<br />       break;<br />      }<br />     }<br />     //没找到对应模块<br />     if(false == moduleExist)<br />     {<br />      <br />      if(System.Configuration.ConfigurationSettings.AppSettings["NetStyle"].ToString()=="internet")<br />      {<br />       DownloadFile(serverNode.ChildNodes[2].InnerText,tempPath + serverNode.ChildNodes[0].InnerText);<br />      }<br />      else<br />      {<br />       DownloadFile(serverNode.ChildNodes[3].InnerText,tempPath + serverNode.ChildNodes[0].InnerText);<br />      }<br />     }<br />    }<br />    //写入新UpdateConfig.xml升级完毕后替换<br />    if(newVersionExist)<br />    {<br />     serverXmlDoc.Save(tempPath + "UpdateConfig.xml");<br />     if(DialogResult.Yes == MessageBox.Show("有新版本，是否更新?","提示",MessageBoxButtons.YesNo))<br />     {<br />      string[] dirs = System.IO.Directory.GetFiles(tempPath, "*.*");<br />      string fileName;<br />      foreach (string dir in dirs)<br />      {<br />       fileName = ((dir.Split(Convert.ToChar(@"\")))[dir.Split(Convert.ToChar(@"\")).Length - 1]);<br />       if(System.IO.File.Exists(desPath + fileName))<br />       {<br />        //TODO:可以支持备份以前版本<br />        System.IO.File.Delete(desPath + fileName);<br />       }<br />       //TODO:如果系统正在运行，您得停止系统，至于如何停止，也许可以使用System.Diagnostics.Process<br />       System.IO.File.Move(dir,desPath + fileName);<br />      }<br />      MessageBox.Show("升级完毕");<br />     }<br />     else<br />     {<br />      //TODO:可以支持重新提示升级<br />     }<br />    }<br />   }<br />   catch(Exception ex)<br />   {<br />    throw new Exception("升级失败，原因是：" + ex.Message,ex);<br />   }<br />  }</font>
		</p>
		<p>
				<font size="1">//下载最新的文件</font>
		</p>
		<p>
				<font size="1">  private void DownloadFile(string source,string fileName)<br />  {<br />   try<br />   {<br />    System.Net.WebClient myWebClient = new System.Net.WebClient();<br />    myWebClient.DownloadFile(source,fileName);<br />   }<br />   catch(Exception ex)<br />   {<br />    throw new Exception("下载失败，原因是：" + ex.Message,ex);<br />   }<br />  }</font>
		</p>
<img src ="http://www.blogjava.net/yeiwei/aggbug/70754.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yeiwei/" target="_blank">圣域飞侠</a> 2006-09-20 12:51 <a href="http://www.blogjava.net/yeiwei/articles/70754.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>验证码的三种做法[纯数字][纯汉字][字母\数字\汉字混合]</title><link>http://www.blogjava.net/yeiwei/articles/70752.html</link><dc:creator>圣域飞侠</dc:creator><author>圣域飞侠</author><pubDate>Wed, 20 Sep 2006 04:50:00 GMT</pubDate><guid>http://www.blogjava.net/yeiwei/articles/70752.html</guid><wfw:comment>http://www.blogjava.net/yeiwei/comments/70752.html</wfw:comment><comments>http://www.blogjava.net/yeiwei/articles/70752.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yeiwei/comments/commentRss/70752.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yeiwei/services/trackbacks/70752.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 网上有很多关于验证码做法的资料,但是真正做得完整的却非常少,所以昨天晚上参考了作者：CSDN 上kwklover 的										在ASP.NET下实现数字和字符相混合的验证码 								(混合,完整,遗憾的是vb.net,说到这里我想我得感谢stone(QQ9337874),因为我在把VB译成C#的过程中几番出错,最终这段翻译由他完成)!!随机汉字参考了				...&nbsp;&nbsp;<a href='http://www.blogjava.net/yeiwei/articles/70752.html'>阅读全文</a><img src ="http://www.blogjava.net/yeiwei/aggbug/70752.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yeiwei/" target="_blank">圣域飞侠</a> 2006-09-20 12:50 <a href="http://www.blogjava.net/yeiwei/articles/70752.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用C#创建可拖动窗体</title><link>http://www.blogjava.net/yeiwei/articles/70737.html</link><dc:creator>圣域飞侠</dc:creator><author>圣域飞侠</author><pubDate>Wed, 20 Sep 2006 03:39:00 GMT</pubDate><guid>http://www.blogjava.net/yeiwei/articles/70737.html</guid><wfw:comment>http://www.blogjava.net/yeiwei/comments/70737.html</wfw:comment><comments>http://www.blogjava.net/yeiwei/articles/70737.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yeiwei/comments/commentRss/70737.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yeiwei/services/trackbacks/70737.html</trackback:ping><description><![CDATA[
		<font size="1">所谓“可拖动窗体”就是无需拖动标题栏就可以拖动的窗体，这在一个没有标题栏的窗体上是一种非常有用的技术。关于这一方面的技巧，网上已经有很多介绍，但都不是很详尽，有些实现也不够简洁。最主要的，这些介绍大多是大片大片的源代码，很少讲解；初学者学期来恐怕要费些力气（我在学习这个技巧的时候就很痛苦）。在这里，我对这个技巧进行了一个详细的讲解，相信各位初学者朋友可以学会如何制作可拖动窗体。</font>
		<p>
				<font size="1">    （注：本文期望的读者是那些有一定用C#开发Windows程序基础但暂时还不会制作可拖动窗体的朋友。）</font>
		</p>
		<p>
				<font size="1">    首先，我们来复习一下一个Windows窗体的组成。请看这张图：</font>
		</p>
		<font size="1">
				<hr width="90%" color="#000000" />
		</font>
		<blockquote>
				<blockquote>
						<p align="center">
								<font size="1">图1  Windows窗体构成</font>
						</p>
						<p align="center">
								<a href="http://blog.csdn.net/images/blog_csdn_net/loverp/44862/o_mw_fig01.JPG" target="_blank">
										<font size="1">
												<img alt="点击查看原图" src="http://blog.csdn.net/images/blog_csdn_net/loverp/44862/o_mw_fig01.JPG" width="80%" border="0" />
										</font>
								</a>
						</p>
				</blockquote>
		</blockquote>
		<font size="1">
				<hr width="90%" color="#000000" />
		</font>
		<p>
				<font size="1">    这是一个形式化的标准Windows窗体。首先，窗体的顶部是一个标题栏，其余的部分是窗体的主体，包围在窗体主体外围的是一个边框，边框内不就是我们放置控件或绘制图形的用户区。</font>
		</p>
		<p>
				<font size="1">    图中还标明了各种窗体构造元素的尺寸的获得方法。对于用户区，<span class="mycode">System.Windows.Forms.Form</span>提供了实例属性<span class="mycode">ClientSize</span>，相信大家已经很熟悉了。而要想活棋一般性的窗体构造元素（如标题栏、边框等）的尺寸，我们可以使用.NET类库中提供的一个类：<span class="mycode">System.Windows.Forms.SystemInformation</span>，这个类提供了一些静态属性如表示标题栏高度的<span class="mycode">CaptionHeight</span>。有关<span class="mycode">SystemInformation</span>类的信息可以在.NET SDK文档目录“</font>
				<a href="ms-help://MS.NETFrameworkSDKv1.1.CHS/cpref/html/frlrfSystemWindowsFormsSystemInformationClassTopic.htm" target="_blank">
						<font size="1">.NET Framework SDK -&gt; 参考 -&gt; 类库 -&gt; System.Windows.Forms -&gt; SystemInformation 类</font>
				</a>
				<font size="1">”处找到（注：这里的超链接只在您安装了.NET Framework 1.1简体中文版并且安装了配套文档时才有效）。这是一个很有用的类，希望大家能够记住它（可能您早就知道了，可我是才知道的-_-汗~~）。</font>
		</p>
		<p>
				<font size="1">    接下来，我们来看看如何在在用户区拖动鼠标时移动窗体。请看下面这张图：</font>
		</p>
		<font size="1">
				<hr width="90%" color="#000000" />
		</font>
		<blockquote>
				<blockquote>
						<p align="center">
								<font size="1">图2  窗体的移动</font>
						</p>
						<p align="center">
								<a href="http://blog.csdn.net/images/blog_csdn_net/loverp/44862/o_mw_fig02.JPG" target="_blank">
										<font size="1">
												<img alt="点击查看原图" src="http://blog.csdn.net/images/blog_csdn_net/loverp/44862/o_mw_fig02.JPG" width="80%" border="0" />
										</font>
								</a>
						</p>
				</blockquote>
		</blockquote>
		<font size="1">
				<hr width="90%" color="#000000" />
		</font>
		<p>
				<font size="1">    我们来观察鼠标在窗体内的位置和窗体的移动，很容易可以发现：在窗体被拖动的过程中，鼠标在窗体内的相对位置是始终不变的！那么，我们只要检测到鼠标在屏幕中的移动并修改窗体的位置就可以达到拖动窗体的目的！</font>
		</p>
		<p>
				<font size="1">    我们知道，在鼠标消息/事件处理中，只能得到鼠标相对于窗体的位置。那么，如何知道鼠标在屏幕中的位置呢？这里又要提到一个类：<span class="mycode">System.Windows.Forms.Control</span>类。也许你会很吃惊：这不是所有控件的基类么？呵呵~是这样di。不过，尽管是这样，<span class="mycode">Control</span>类却没有像其他广泛使用的基类那样被声明为抽象类，而且它提供了一个静态属性：<span class="mycode">MousePosition</span>，通过这个属性可以得到鼠标相对于屏幕的位置。有关<span class="mycode">Control</span>类的信息可以在.NET Framework文档目录“</font>
				<a href="ms-help://MS.NETFrameworkSDKv1.1.CHS/cpref/html/frlrfSystemWindowsFormsControlClassTopic.htm" target="_blank">
						<font size="1">.NET Framework SDK -&gt; 参考 -&gt; 类库 -&gt; System.Windows.Forms -&gt; Control 类</font>
				</a>
				<font size="1">”处找到（注：这里的超链接只在您安装了.NET Framework 1.1简体中文版并且安装了配套文档时才有效）。</font>
		</p>
		<p>
				<font size="1">    知道了如何获取这些信息之后，制作移动窗体实际上就成了一个很简单的问题了。基本过程是这样的：首先，在鼠标（左键或一个你喜欢的键）按下时，记录鼠标位置；由于在移动的过程中，鼠标的屏幕坐标发生变化但窗体相对坐标不变，我们可以推算出窗体位置的变化为（假设<span class="mycode">mousePosition</span>具有<span class="mycode">System.Drawing.Point</span>类型，表示鼠标在窗体中的相对坐标）：</font>
		</p>
		<p class="mycodet">
				<font size="1">// 示例代码1<br />Form.Top = Control.MousePosition.Y - mousePosition.Y;<br />Form.Left = Control.MousePosition.X - mousePosition.X;</font>
		</p>
		<p>
				<font size="1">    这样还不行，因为我们的<span class="mycode">mousePosition</span>表示的是鼠标在窗体用户区内的相对坐标，但在移动窗体的时候还要考虑窗体标题栏和边框的尺寸。在上面的基础上，我们将代码修正为：</font>
		</p>
		<p class="mycodet">
				<font size="1">// 示例代码2<br />Form.Top = Control.MousePosition.Y - mousePosition.Y<br />           - SystemInformation.FrameBorderSize.Height - SystemInformation.CaptionHeight;<br />Form.Left = Control.MousePosition.Y - mousePosition.Y<br />            - SystemInformation.FrameBorderSize.Width;</font>
		</p>
		<p>
				<font size="1">    也就是说，在高度上（纵坐标）要减去标题栏的高度和边框的高度，而在宽度上（横坐标）要减去边框的宽度。然而，当制作一个既没有标题栏也没有边框的可拖动窗体时，使用“示例代码1”所示的代码就可以了。</font>
		</p>
		<p>
				<font size="1">    上面的代码只是一个示范性代码。具体的操作如下：</font>
		</p>
		<p>
				<font size="1">    首先，为窗体添加一个私有域：</font>
		</p>
		<p class="mycodet">
				<font size="1">private System.Drawing.Point mousePoint;</font>
		</p>
		<p>
				<font size="1">    然后，为窗体添加鼠标按下事件处理方法（我这里是<span class="mycode">MainForm_MouseDown</span>，别忘了将该方法链接到<span class="mycode">MainForm.MouseDown</span>事件，这不用多说了吧？）：</font>
		</p>
		<p class="mycodet">
				<font size="1">private void MainForm_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) {<br />    if(e.Button == MouseButtons.Left) {<br />        this.mousePosition.X = e.X;<br />        this.mousePosition.Y = e.Y;<br />    }<br />}</font>
		</p>
		<p>
				<font size="1">    在这里注意对鼠标按键进行筛选。</font>
		</p>
		<p>
				<font size="1">    接下来，为窗体添加鼠标移动事件处理方法（我这里是<span class="mycode">MainForm_MouseMove</span>）：</font>
		</p>
		<p class="mycodet">
				<font size="1">private void MainForm_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) {<br />    if(e.Button == MouseButtons.Left) {<br />        Form.Top = Control.MousePosition.Y - mousePosition.Y<br />                   - SystemInformation.FrameBorderSize.Height - SystemInformation.CaptionHeight;<br />        Form.Left = Control.MousePosition.Y - mousePosition.Y<br />                    - SystemInformation.FrameBorderSize.Width;<br />    }<br />}</font>
		</p>
		<p>
				<font size="1">    这里，如果窗体没有标题栏，可以去掉“<span class="mycode">-SystemInformation.CaptionHeight</span>”；如果窗体没有边框，还可以去掉“<span class="mycode">-SystemInformation.FrameBorderSize.Height</span>”和“<span class="mycode">-SystemInformation.FrameBorderSize.Width</span>”。</font>
		</p>
		<p>
				<font size="1">    现在，您是不是已经很清楚地明白如何用C#制作可拖动窗口了？祝贺您！最后，送您一个小礼物——</font>
				<a href="http://www.cstc.net.cn/~DeskTimer/DeskTimer.rar">
						<font size="1">桌面时钟</font>
				</a>
				<font size="1">。很简洁、很有意思哦~~~</font>
		</p>
		<p>
				<font size="1">    另外赠送小技巧三则：</font>
		</p>
		<ul>
				<li>
						<font size="1">如何制作不规则窗体 </font>
				</li>
		</ul>
		<p>
				<font size="1">    这个技巧我掌握的还不是很丰富，现在介绍一种最简单的方法——通过设置窗体的<span class="mycode">Region</span>属性。首先，声明一个<span class="mycode">System.Drawing.Drawing2D.GraphicsPath</span>变量，在这个变量中添加您期望作为窗体轮廓的形状组合；之后，从这个变量生成一个<span class="mycode">System.Drawing.Region</span>实例，并赋给窗体的<span class="mycode">Region</span>属性即可。如：</font>
		</p>
		<p class="mycodet">
				<font size="1">GraphicsPath gp = new GraphicsPath();<br />gp.AddEllipse(0, 0, 120, 120);<br />Region r = new Region(gp);<br />this.Region = r;</font>
		</p>
		<p>
				<font size="1">    将上述代码添加到窗体的构造函数中，我们就能够得到一个自定义的窗体了，这个窗体是一个直径为120像素的圆形（也是我的时钟的外观哦）。</font>
		</p>
		<ul>
				<li>
						<font size="1">如何生成没有边框的窗体 </font>
				</li>
		</ul>
		<p>
				<font size="1">    将窗体的<span class="mycode">FormBorderStyle</span>设置为<span class="mycode">None</span>即可。这很简单事么？那么</font>
		</p>
		<ul>
				<li>
						<font size="1">如何生成有边框但没有标题栏的窗体 </font>
				</li>
		</ul>
		<p>
				<font size="1">    首先将窗体的<span class="mycode">ControlBox</span>属性设置为<span class="mycode">false</span>，也就是不要控制按钮（窗体图标、最大最小化按钮和关闭按钮）。按说这时就不应该有标题栏了，但我们还能看到它很烦人地待在那里，因此，我们要把窗体的<span class="mycode">Text</span>属性设置为空（注意是<span class="mycode">String.Empty</span>，而不是<span class="mycode">null</span>）。</font>
		</p>
<img src ="http://www.blogjava.net/yeiwei/aggbug/70737.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yeiwei/" target="_blank">圣域飞侠</a> 2006-09-20 11:39 <a href="http://www.blogjava.net/yeiwei/articles/70737.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何在Web页面上直接打开、编辑、创建Office文档</title><link>http://www.blogjava.net/yeiwei/articles/70734.html</link><dc:creator>圣域飞侠</dc:creator><author>圣域飞侠</author><pubDate>Wed, 20 Sep 2006 03:32:00 GMT</pubDate><guid>http://www.blogjava.net/yeiwei/articles/70734.html</guid><wfw:comment>http://www.blogjava.net/yeiwei/comments/70734.html</wfw:comment><comments>http://www.blogjava.net/yeiwei/articles/70734.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yeiwei/comments/commentRss/70734.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yeiwei/services/trackbacks/70734.html</trackback:ping><description><![CDATA[
		<font size="1">有朋友询问如何在Web页面上做到像SharePoint中的效果一样，能直接激活客户端的Word来打开.doc文件，而不是类似直接点击.doc文档链接时Word在IE中被打开那样。想想这个问题应该很多人都会感兴趣，所以干脆写一篇blog来大致描述一下方法。<br /><br />在安装Office2003以后，有一个ActiveX控件被安装到了系统中，这个控件位于“Program Files\Microsoft Office\OFFICE11\owssupp.dll”。通过这个控件，客户端页面上的JavaScript就可以激活本地的Office软件，来实现打开、编辑Office文档。（另，Office XP应该就已经包含这个ActiveX控件了。）<br /><br />首先，用Script创建一个本地的对象：<br /><br />openDocObj = new ActiveXObject("SharePoint.OpenDocuments.2"); // 为了兼容Office XP，可以创建“SharePoint.OpenDocuments.1”<br /><br />然后，调用openDocObj的相应的方法。比如打开服务器上的一个Office文档：<br /><br />openDocObj.ViewDocument("http://www.abc.com/documents/sample.doc");<br /><br />openDocObj对象会根据参数中不同的Office文档类型（.doc、.xls、.ppt）来打开不同的程序（Word、Excel、PowerPoint）。ViewDocument()方法还有一个重载签名，可以让我们手工指定激活哪个程序来打开文档：<br /><br />openDocObj.ViewDocument("http://www.abc.com/documents/sample.doc", 要激活的程序的ProgID);<br /><br />那么要打开Office程序在线编辑文件又如何？<br /><br />openDocObj.EditDocument("http://www.abc.com/documents/sample.doc");<br /><br />就可以直接激活Word，在Word里面编辑文档，然后直接点击Word里面的保存功能，就可以将文件保存会服务器上了。注意：为了让Word能将编辑后的文档直接保存会服务器，访问Web站点的当前上下文的Windows Identity必须对服务器的相应目录（即“http://www.abc.com/documents”这个虚拟目录所对应的服务器上的物理路径）有相应的写权限，否则保存动作会失败。编辑完成后，EditDocument()会返回一个bool值，来反映编辑操作是否成功。<br /><br />我们还可以通过打开服务器上的一个文档模版，来创建一个新的文档：<br /><br />openDocObj.CreateNewDocument("http://www.abc.com/documents/sampleTemplate.dot", "http://www.abc.com/documents/");<br /><br />就可以使用“http://www.abc.com/documents/sampleTemplate.dot”这个模版来创建一个新的文档，默认新文档的保存地点是“http://www.abc.com/documents/”。创建新文档时使用的程序取决于模版文件的类型（比如.dot模版会对应Word）。新文档的保存同样需要注意权限问题。CreateNewDocument()方法同样会返回一个bool值来反映操作是否成功。<br /><br />CreateNewDocument()方法的第一个参数，除了可以使用一个模版的地址外，还可以直接指定为希望用来创建新文档的客户端程序的ProgID。<br /></font>
<img src ="http://www.blogjava.net/yeiwei/aggbug/70734.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yeiwei/" target="_blank">圣域飞侠</a> 2006-09-20 11:32 <a href="http://www.blogjava.net/yeiwei/articles/70734.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>2003上传文件不能超过200k问题解决方法问题</title><link>http://www.blogjava.net/yeiwei/articles/70733.html</link><dc:creator>圣域飞侠</dc:creator><author>圣域飞侠</author><pubDate>Wed, 20 Sep 2006 03:31:00 GMT</pubDate><guid>http://www.blogjava.net/yeiwei/articles/70733.html</guid><wfw:comment>http://www.blogjava.net/yeiwei/comments/70733.html</wfw:comment><comments>http://www.blogjava.net/yeiwei/articles/70733.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yeiwei/comments/commentRss/70733.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yeiwei/services/trackbacks/70733.html</trackback:ping><description><![CDATA[2003上传文件不能超过200k问题解决方法问题：无法上传较大的文件“Request 对象 错误 'ASP 0104 : 80004005'”或者上传成功后，找不到文件名<br />更改win2003的IIS 6.0对asp的上传文件大小为200k限制，aspx的上传程序没有影响。在IIS6.0中，默认设置是特别严格和安全的，最大只能传送 204,800 个字节，这样可以最大限度地减少因以前太宽松的超时和限制而造成的攻击。IIS 6 出于安全考虑, 默认最大请求是200K(也即最大提交数据限额为200KByte，204800Byte)。（在 IIS 6.0 之前的版本中无此限制）<br />解决方案：<br />先打开Internet 信息服务（IIS）管理器<br />（本地计算机 ）---- 属性 ----允许直接编辑配置数据库(N)<br />一定要勾先“允许直接编辑配置数据库(N)”，然后在服务里关闭iis admin service服务<br />找到windows\system32\inesrv\下的metaba**.*ml, 用计事本打开metaba**.*ml，找到ASPMaxRequestEntityAllowed 把他修改为需要的值，默认为204800，即200K ，把它修改为51200000（50M），然后重启iis admin service服务<img src ="http://www.blogjava.net/yeiwei/aggbug/70733.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yeiwei/" target="_blank">圣域飞侠</a> 2006-09-20 11:31 <a href="http://www.blogjava.net/yeiwei/articles/70733.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>