© 牧山道人,转载请注明原文网址。
_____________________________________
在 View = Details 的 ListView 中,如果 ListView 已按某列排过序,则使用 ListView.FindItemWithText 有时会找出本已删除之 Item。
解决方法:
在 使用 FindItemWithText 之前重置一下 ListView 的当前排序:
lv.Sorting = SortOrder.None
该语句不影响界面显示,但可保证 FindItemWithText 正常工作。
此外,在批量添加 Items 前[……]
Read More…
© 牧山道人,转载请注明原文网址。
_____________________________________
当我们将某控件的 AllowDrop 属性设为 True 之后,即可在其 DragDrop 事件中对拖放动作进行编码。
但这里有个很重要的问题:
只是改变 AllowDrop 属性,用户将对象(文件、文件夹等)拖放进该控件时,鼠标指标仍然是禁止状态,用户只能认为该控件不支持拖放,而你实际上为拖放操作编写了代码。
此时,这段代码理论上有效,但实际上没作用。
怎么解决这个问题呢?很简单:
在该控件的 DragEnter 事件(拖进时)中编写以下代码即可:[……]
Read More…
© 牧山道人,转载请注明原文网址。
_____________________________________
今天解决了一个问题:Dictionary 泛型容器的 Key 重复,导致 Dictionary 转 SortedDictionary 时报错。
究其原因,是将 Single/float 数据类型作为自定义 Comparer 类型引起的。
原理不多讲,请看下面的例子:
Single/float 的 293830.001 与 293830 相等,甚至 293830.01 也等于 293830,但 830.001 与 830 却不相等,也就是说达到一定数量级后,.NE[……]
Read More…
作者:牧山道人
原文地址:https://www.seeksunslowly.com/dot-net-捕获-webbrowser-控件-击键事件-keypress-keydown-keyup
转载请注明出处,谢谢。
_____________________________________
有时,我们需要处理用户在设计模式的 WebBrowser 控件中的击键事件(比如用于判断 WebBrowser 内容是否发生变化),但遍寻所有 WebBrowser 支持的事件,没有发现 KeyPress/KeyDown/KeyUp 事件。
WebBrowser 其实就是一个 IE,其本身[……]
Read More…
作者:牧山道人
原文地址:https://www.seeksunslowly.com/vb-net-toolstripbutton-shortcuts-webbrowser-sc
转载请注明出处,谢谢。
_____________________________________
因为工具栏按钮(ToolStripButton)本身并不支持快捷键,即没有 ShortcutKeys 属性,所以需要单独编码实现。
如下图所示:
常用方式有两种,一是通过 Form 的 KeyDown/KeyUp 事件实现(需要将 Form 的 KeyPreview 属性设为 True)[……]
Read More…
作者:牧山道人
原文地址:https://www.seeksunslowly.com/如何解决-net-webbrowser-控件-ie9-浏览器不能编辑输入的问题
转载请注明出处,谢谢。
_____________________________________
假如 WebBrowser 控件名为 wb,则以下代码即可令 WebBrowser 在 IE9+ 浏览器下可编辑:
[cc lang=”vbnet”]
Private Sub wb_DocumentCompleted(ByVal sender As Object, _[……]
Read More…
作者:牧山道人
原文地址:https://www.seeksunslowly.com/visual-studio-中去掉-vmware-菜单的终极方法
转载请注明出处,谢谢。
_____________________________________
大家好,话说装了 VMWare 后,Visual Studio 菜单栏便出现了 VMWare 菜单。
据说,这会影响 VS 启动速度,但现在电脑很快,有多大影响本道倒不清楚,但作为处女座的人,肯定不会容许用不上的菜单一直挂在那里。
百度 Google Bing 了半天,老实说,真没人解决这个问题,不过他们提到的方法或许对你合用[……]
Read More…
作者:牧山道人
原文地址:https://www.seeksunslowly.com/dot-net-如何知道某窗口是被哪个窗口打开的
转载请注明出处,谢谢。
_____________________________________
使用场景
比如有一个输入密码的公用窗口 FormA,可能会被多个窗口开启。
在 FormA 窗口中也许会有操作调用窗口的代码,此时就需要确定调用窗口是哪个。
实现方法
很简单,Form 类的 Show() 以及 ShowDialog() 均可包含一个参数,表示被开启窗口的所有者。
一般用法为:在需要开启 FormA 的窗口中写下 For[……]
Read More…
作者:牧山道人 原文地址:https://www.seeksunslowly.com/vb-net-api-函数或外部-dll-函数工作异常的处理方式之一 转载请注明出处,谢谢。 _____________________________________ 有时,我们会发现在 VB6 中工作正常的 API 函数或外部 DLL 函数在 VB .NET 中工作异常。 笔者昨天也碰到到这样的问题,后来经过调试,发现原因是 VB6 中的 Long 数据类型在 VB .NET 中应声明为 Integer(事实上其表示的范围是等价的)。 比如,以下 VB6 使用的 A[……]
Read More…
作者:牧山道人 原文地址:https://www.seeksunslowly.com/vb-net-如何使用通配符批量删除文件 转载请注明出处,谢谢。 _____________________________________ 在编程工作中,使用通配符批量删除文件的需求随处可见。 对 .NET 来说,实现起来非常简单,不需要遍历目录即可实现。 使用 Kill 方法即可完成! 代码示例: Microsoft.VisualBasic.FileSystem.Kill("E:\test\*.jpg") 对于 C#,同样可使用 Kill 实现,不过请[……]
Read More…