获取鼠标悬停控件
我正在开发 C# .NET 应用程序。我的应用程序使用 TablePanelLayout 作为容器。它包含很多子控件(Label、TextBox、Button...)。当鼠标移到控件上时,如何获取该控件的名称?
I am working on a C# .NET application. My application uses TablePanelLayout as a container. It contains a lot of child controls (Label, TextBox, Button...). When the mouse moves over a control, how can I get the name of that control?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Control.GetChildAtPoint 方法(点) 和 Control.GetChildAtPoint 方法(Point、GetChildAtPointSkip) 执行您需要的操作。
但根据您的情况,您也可以执行以下操作:
对于面板中的每个子项,为子项的鼠标悬停事件添加一个侦听器,并在该侦听器中检查 sender 参数。
Control.GetChildAtPoint Method (Point) and Control.GetChildAtPoint Method (Point, GetChildAtPointSkip) do what you need.
But in your case you may also do the following:
for each child in your panel add a listener to the child's mouseover event and in that listener check the sender parameter.
你可以做这样的事情,使用 jquery 来获取鼠标悬停时的功能。
$('#outer').mouseover(function() {
//这里获取控制权
});
you can do something like this, use jquery to get the function on mouse over.
$('#outer').mouseover(function() {
//get the control here
});
我必须做类似的事情来获取用户单击的控件的名称。您的案例已将鼠标悬停,但相同的方法可能会起作用。我最终使用:
在程序启动时。 MyMessageFilter 的基础知识看起来像这样。您必须适应鼠标移动。
I had to do something similar to get the name of the control the user clicked on. Your case is mouse over, but the same approach will probably work. I ended up using:
at program startup. The basics of MyMessageFilter looks something like this. You'll have to adapt for mouse moves.