随笔分类 - VB.NET
摘要: 此文主要针对使用微软的 DotNet 平台,做网络相关的WinForm程序的开发。 .NET平台中,网络相关的内容,基本全部包含于 System.Net 这个命名空间下。 MSDN上,微软官方给出的优化建议如下: 应尽可能使用 WebRequest 和 WebResponse,而不要类型转换为子代类。使用 WebRequest 和 WebResp...
阅读全文
摘要:这个应用,是用在 WinForm 中的TreeView,不是ASP.NET。效果图如下: 当TreeView启用checkboxes 方式的时候,当父节点选中的时候,它所有的子节点一起被选中;当父节点取消选择的时候,它所有的子节点也取消选择。 实现起来,非常简单,代码如下: /// <summary>/// 假设treeview的name是 treeView1/// </sum...
阅读全文
摘要:今天,有个网友,提问: 指定目录中有若干个很小的文本文件,现在需要使用多线程进行读取。一个文件一个线程或设置共有10个线程之类的方式都可以。把读取的文本全部追加到窗口中的指定编辑框中,只有一个编辑框,都写在这个里面,不分顺序,换行即可。 我用委托的方式,写了下面的解决方法: using System;using System.Collections.Generic;using System.Co...
阅读全文
摘要:最近,收到几位网友的咨询,都说使用 SmtpClient 通过 139,189,qq 邮箱的SMTP服务,发送邮件时,都不成功,返回的错误是 “身份验证失败”,而同样的情况,使用outlook express, foxmail 则可以正常发送。
为了搞清原因,我自己测试了一把,问题确实如此。
下面,我分析了这个问题出现的原因......
阅读全文
摘要:今天,有朋友发消息来询问,看到别人的UrlEncode编码结果,和自己的不一样,情形如下: 别人的 Server.UrlEncode(“索尼”) 返回的结果是 %CB%F7%C4%E1 而他的 Server.UrlEncode(“索尼”) 返回的结果是 %e7%b4%a2%e5%b0%bc 我自己测试了一下,发现 ASP.NET 中返回的是 %e7...
阅读全文
摘要:今天,有网友问: 如何不显示控制台程序运行时的窗口? 其实 实现方式,和 Windows程序差不多,可以利用API将 控制台程序的窗口隐藏。 实现的代码如下: http://www.zu14.cn/2009/05/26/hide-console-application-window-by-windows-api-showwindow/
阅读全文
摘要:具体地址:http://www.zu14.cn/2009/05/23/open-source-html-editor-for-dotnet-winform/
阅读全文
摘要:
最近,我发布了几篇关于 .NET 和 EML 文件的邮件相关 的博文,引来了一些网友的关注与讨论。尤其是对于“如何解析EML文件的内容”和 “发送现有的EML文件”。
目前,比较主流的解析EML文件的方式,基本是对MIME格式的分析,基于对 RFC822及其后续扩展的标准 的理解。但是,此种方法工作量太大,且过于繁琐。
我是个懒人,喜欢找捷径
大家都知道,微软的 outlook express 是可以保存和打开并发送EML文件的。那么很明显,outlook express 肯定是可以解析EML文件的。
问题就来了:我们可不可以利用微软现有的成果呢?
阅读全文

摘要:昨天,有个网友发消息来咨询关于 “TreeView节点的拖放” 相关的实现,于是写下了此篇博文。一、 拖动前 二、拖动后 注: 将 TreeView 的 AllowDrop 设为 true具体的实现,参见 http://www.zu14.cn/2009/05/19/csharp-drag-drop-treeview-node-sample/
阅读全文
摘要:.NET 自从2.0开始,大大提升了 Mail.SmtpClient 的功能,对于发邮件,可谓游刃有余了。但是,美中不足的是没有提供保存邮件内容为eml文件的功能
实际上,SmtpClient 和 MailMessage 已经实现了这个功能,只是这个功能是 NonPublic 的,对于空间外,不可见而已。
阅读全文
摘要:EXCEL里面,默认的情况下,对于字段内容长度超过15位的数字,后面的内容会全部被搞成0,真是自作多情啊! 例如:常见的,我们输入18位的身份证号码:111111111111111111,就会变成 111111111111111000 而且,显示也用科学计数方式显示,真是太恶心了 最近有个需求,导出一些人的个人资料到 CSV 或者 EXCEL,在导出身份证时,就遇到了这个垃圾问题...
阅读全文
摘要:在某些时候,我们有一些如下需要,例如:不能移动程序的窗体;不能点击关闭程序的窗体;不能最大化/最小化窗体等。上面的一些需求,通过对窗体属性的一些设置,基本都可以实现,但是,确并不总是能满足我们的需要。例如:我们需要让关闭按钮显示,但是变灰(不能点击),同时正常的显示最大化和最小化按钮API中,对于菜单的操作,可谓丰富,常用的有: 我这里,就举2个例子, EnableMenuItem 和 Delet...
阅读全文
摘要:应用程序配置文件,对于asp.net是 web.config,对于WINFORM程序是 App.Config(ExeName.exe.config)。 配置文件,对于程序本身来说,就是基础和依据,其本质是一个xml文件,对于配置文件的操作,从.NET 2.0 开始,就非常方便了,提供了 System [.Web] .Configuration 这个管理功能的NameSpace,要使用它,需要添加对...
阅读全文
摘要:我自己更偏向于使用C#, 但是VB 和 VB.NET的丰富的函数,也是非常可取的。充分运用这些函数,可以起到事半功倍的效果。 VB中的原来的函数库,部分进入了 Microsoft.VisualBasic.Interaction 中,例如: InputBox, MsgBox 就是了。 在C#使用 InputBox,当然可以自己实现, 其实就是一个 Form 而已,我更推荐使用VB.NET里面的,...
阅读全文
摘要:今天,有个网友询问: C#中,如何随意拖动PictureBox? 看到这个问题,我自然而然就联想到了以前的拖动无边框窗体的实现上,其实,不只是PictureBox,基本上所有的控件都可以被拖动。 实现,就是利用Windows的API函数:SendMessage 和 ReleaseCapture 即可了,代码很简单。 核心代码如下: const uint WM_SYSCO...
阅读全文
摘要:由于自己的需要,写了小工具,可以将Visual Studio 2008的项目,转为Visual Studio 2005的项目,因为我只用C#,所以只做了C#的项目转换的版本。 可以自动将一个解决方案下的所有项目全部转换过去,由于个人原因,仅作了 VS2008 使用 .NET FRAMEWORK 2.0 的情况,使用.NET 3.0 和 3.5 的,部分项目也可以,因为自己暂时没需要,就没去做。...
阅读全文
摘要:利用 Windows 的 API 获取桌面壁纸的实际路径,使用的是 SystemParametersInfo 这个API,此API的功能非常丰富,壁纸操作只是一斑 。 using System.Runtime.InteropServices; [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true...
阅读全文
摘要:在 Windows 系统的 任务栏 上的 快速启动栏 里,通常有一个图标 ,点击这个图标,就会切换到桌面。这个图标实际是一个 “Windows Explorer Command” ,用记事本打开这个文件,我们看到如下的内容: [Shell] Command=2 IconFile=explorer.exe,3 [Taskbar] Command=ToggleDesktop 这个文件的...
阅读全文
摘要:对于复杂的、符合一定规则的字符串替换来说,正则表达式无疑是强悍和高效的选择 对于正则表达式的使用,我也写过几篇帖子了,具体可以见下面的地址 http://zu14.cn/tag/regex/ 今天,说一下 .NET 里面 正则 使用的稍微高级一些的技巧:分组替换 ,下面我们举两个实例来说明这个问题: 一段字符串,把其中出现的 Ax,Ay 形式的内容,替换为 Ax 的形式(也就是 ...
阅读全文
摘要:VarPtr 是 VB 中的一个函数,这个函数的作用,是返回变量的地址,说白了就是一个指针,但是,.Net平台放弃了指针,采用了委托,对于托管代码,.Net 的限制较多,这也跟 .NET 平台的本身定位有关系。 VarPtr在 C# 和 VB.NET 中,都不存在了,但是,在使用.NET平台,做一些外设的二次开发的时候,有时还是需要用到类似 VarPtr 的功能,例如: USB 设备接口, C...
阅读全文