是否有任何方法可以从 .NET 2.0 TextBox 控件中捕获 MouseDown?我知道继承的 Control 类有事件,但它没有在 TextBox 中公开。有没有办法覆盖事件处理程序?
我还尝试了 OpenNETCF TextBox2 控件,它确实暴露了 MouseDown 事件,但无论我做什么,它都不会触发处理程序。
有什么建议么?
你有什么样的疯狂移动设备,有鼠标?:)
是的,windows mobile 没有真正的鼠标,但您误认为 Windows Mobile .NET 不支持鼠标事件。屏幕上的单击或移动仍被视为“鼠标”事件。这样做是为了让代码可以轻松地从完整的 Windows 移植过来。这不是 Windows Mobile 特定的问题。Windows 上的 TextBox 控件也没有本机鼠标事件。在这种情况下,我只是碰巧使用了 Windows Mobile。
编辑:附带说明...由于 Windows Mobile 是由 WindowsCE 核心构建的,该核心通常用于嵌入式桌面系统和 Slim Terminal Services 客户端或“WinTerms”,它支持硬件鼠标并且已经使用了很长时间。大多数设备只是没有可以插入的端口。
根据 .Net Framework,支持 TextBox 上的 MouseDown 事件处理程序。当您尝试运行代码时会发生什么?
实际上,那只是因为它从“Control”继承它,就像所有其他 Form 控件一样。但是,它在 TextBox 类中被覆盖(并且我相信已更改为私有)。所以它不会出现在 Visual Studio 的 IntelliSense 中。
但是,您实际上可以编写代码:
textBox1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.textBox1_MouseDown);
它会编译并运行得很好,唯一的问题是当您点击 TextBox 控件时不会触发 textBox1_MouseDown() 。我认为这是因为事件在内部被覆盖。我什至不想在内部更改事件中发生的事情,我只想将我自己的事件处理程序添加到该事件中,这样我就可以像处理任何其他事件一样触发一些自定义代码。