使用 ListView.FindItemWithText 的注意事项

Posted by NosaLee in .NET Programming on 03-11-2013. Tags: , , , , ,

© 牧山道人,转载请注明原文网址。
_____________________________________

在 View = Details 的 ListView 中,如果 ListView 已按某列排过序,则使用 ListView.FindItemWithText 有时会找出本已删除之 Item。

解决方法:
在 使用 FindItemWithText 之前重置一下 ListView 的当前排序:
lv.Sorting = SortOrder.None
该语句不影响界面显示,但可保证 FindItemWithText 正常工作。

此外,在批量添加 Items 前[……]

Read More…

[……]

Read More…

.NET 中执行拖放操作(drag-and-drop)时如何开启鼠标指针效果?

Posted by NosaLee in .NET Programming on 03-11-2013. Tags: , , , , , , , ,

© 牧山道人,转载请注明原文网址。
_____________________________________

当我们将某控件的 AllowDrop 属性设为 True 之后,即可在其 DragDrop 事件中对拖放动作进行编码。

但这里有个很重要的问题:
只是改变 AllowDrop 属性,用户将对象(文件、文件夹等)拖放进该控件时,鼠标指标仍然是禁止状态,用户只能认为该控件不支持拖放,而你实际上为拖放操作编写了代码。

此时,这段代码理论上有效,但实际上没作用。

怎么解决这个问题呢?很简单:
在该控件的 DragEnter 事件(拖进时)中编写以下代码即可:[……]

Read More…

请注意 .NET 中 Single/float 数据类型的问题

Posted by NosaLee in .NET Programming on 14-10-2013. Tags: , , , , ,

© 牧山道人,转载请注明原文网址。
_____________________________________

今天解决了一个问题:Dictionary 泛型容器的 Key 重复,导致 Dictionary 转 SortedDictionary 时报错。

究其原因,是将 Single/float 数据类型作为自定义 Comparer 类型引起的。

原理不多讲,请看下面的例子:
Single/float 的 293830.001 与 293830 相等,甚至 293830.01 也等于 293830,但 830.001 与 830 却不相等,也就是说达到一定数量级后,.NE[……]

Read More…

.NET 中如何捕获 WebBrowser 控件的击键事件(KeyPress/KeyDown/KeyUp)?

Posted by NosaLee in .NET Programming on 28-03-2013. Tags: , , , , , , , ,

作者:牧山道人
原文地址:http://www.seeksunslowly.com/dot-net-捕获-webbrowser-控件-击键事件-keypress-keydown-keyup
转载请注明出处,谢谢。
_____________________________________

有时,我们需要处理用户在设计模式的 WebBrowser 控件中的击键事件(比如用于判断 WebBrowser 内容是否发生变化),但遍寻所有 WebBrowser 支持的事件,没有发现 KeyPress/KeyDown/KeyUp 事件。

WebBrowser 其实就是一个 IE,其本身相[……]

Read More…

C# 及 VB .NET 工具栏按钮(ToolStripButton)快捷键设置方法建议及注意事项(特别是当窗体中有 WebBrowser 控件时)

Posted by NosaLee in .NET Programming on 26-03-2013. Tags: , , , , ,

作者:牧山道人
原文地址:http://www.seeksunslowly.com/vb-net-toolstripbutton-shortcuts-webbrowser-sc
转载请注明出处,谢谢。
_____________________________________

因为工具栏按钮(ToolStripButton)本身并不支持快捷键,即没有 ShortcutKeys 属性,所以需要单独编码实现。

如下图所示:

ToolStripButton 无 ShortcutKeys 属性!

常用方式有两种,一是通过 Form 的 KeyDown/KeyUp 事件实现(需要将 Form 的 KeyPreview 属性设为 True);[……]

Read More…

如何解决 .NET WebBrowser 控件在 IE9+ 浏览器下不能编辑/输入的问题?

Posted by NosaLee in .NET Programming on 19-11-2012. Tags: , , , , , , , ,

作者:牧山道人
原文地址:http://www.seeksunslowly.com/如何解决-net-webbrowser-控件-ie9-浏览器不能编辑输入的问题
转载请注明出处,谢谢。
_____________________________________

假如 WebBrowser 控件名为 wb,则以下代码即可令 WebBrowser 在 IE9+ 浏览器下可编辑:

[cc lang=”vbnet”]
Private Sub wb_DocumentCompleted(ByVal sender As Object, _[……]

Read More…

.NET 如何对常用常量使用别名?

Posted by NosaLee in .NET Programming on 19-11-2012. Tags: , , , , ,

作者:牧山道人
原文地址:http://www.seeksunslowly.com/net-如何对常用常量使用别名
转载请注明出处,谢谢。
_____________________________________

以 VB .NET 为例:
比如:每次需要写 MsgBoxStyle.Information 这样的字符串,若嫌 MsgBoxStyle 太长,可以使用别名(其实写起来不会慢,主要是占空间)。
用法:
Imports MBS = Microsoft.VisualBasic.MsgBoxStyle
则在对应模组中可以直接使用 MSB.Information 来代替[……]

Read More…

.NET Framework 4.5 安装到哪了?

Posted by NosaLee in .NET Programming on 15-11-2012. Tags: , ,

作者:牧山道人
原文地址:http://www.seeksunslowly.com/net-framework-4-5-安装到哪了
转载请注明出处,谢谢。
_____________________________________

微软最近发布了 .NET Framework 4.5 版本,为了测试产品兼容性,本道也装了一个。

但是很奇怪,装上后却在 X:\Windows\Microsoft.NET\Framework 下找不到对应版本目录,仍然只有 v1.0.x, v1.1.x, v2.0.x, v3.0, v3.5, v4.0.x,就是没有 v4.5 或 v4.5.x 目[……]

Read More…

Visual Studio 中去掉 VMWare 菜单的终极方法

Posted by NosaLee in .NET Programming on 10-11-2012. Tags: , , , , ,

作者:牧山道人
原文地址:http://www.seeksunslowly.com/visual-studio-中去掉-vmware-菜单的终极方法
转载请注明出处,谢谢。
_____________________________________

大家好,话说装了 VMWare 后,Visual Studio 菜单栏便出现了 VMWare 菜单。
据说,这会影响 VS 启动速度,但现在电脑很快,有多大影响本道倒不清楚,但作为处女座的人,肯定不会容许用不上的菜单一直挂在那里。

百度 Google Bing 了半天,老实说,真没人解决这个问题,不过他们提到的方法或许对你合用,[……]

Read More…

VB .NET 的 DateAdd 函数存在严重问题,建议不再使用

Posted by NosaLee in .NET Programming on 30-08-2012. Tags: , , , , ,

作者:牧山道人
原文地址:http://www.seeksunslowly.com/vb-net-的-dateadd-函数存在严重问题-建议不再使用
转载请注明出处,谢谢。
_____________________________________

我们先来看 DateAdd 的函数原型
[cc lang=”vbnet”]
Public Function DateAdd(ByVal Interval As Microsoft.VisualBasic.DateInterval, _
ByVal Number As Double,[……]

Read More…