首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取位于第e个坐标中的控件索引

获取位于第e个坐标中的控件索引
EN

Stack Overflow用户
提问于 2014-04-28 23:47:25
回答 2查看 244关注 0票数 0

我的表单上有一个flowLayoutPanel。我在那里有一些控件,可以拖放。我需要的是获得控件的索引,它位于鼠标位置,例如,如果鼠标在第一个小部件上,我必须得到0。请告诉我怎么做。

谢谢

编辑

Frogot上传照片,抱歉

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-29 00:40:02

您将需要遍历flowLayoutPanel.Controls集合中的控件,以查找鼠标所在的控件。然后再次迭代列表,找出有多少个控件高于/等于高度,并且位于相关控件的左侧。

我不认为你可以避免2次迭代,因为集合的顺序与物理位置无关。

票数 0
EN

Stack Overflow用户

发布于 2019-05-10 03:51:36

我知道这是一个5年前的问题,但由于这个问题和答案仍然出现在谷歌上,我觉得有必要提供一个真正的答案。

FlowLayoutPanel类提供了一个名为GetChildAtPoint的方法,该方法采用客户端相对位置并返回该位置处的控件(如果该位置是相对于FlowLayoutPanel窗口的鼠标位置,则标识光标下的控件)。更糟糕的情况是,您只有一次通过FlowLayoutPanel的子项的线性搜索迭代来匹配对象(如果实际上,您的目标是获取实际的索引,而不是查找索引来查找控件;如果查找控件是您真正想要的,那么您已经完成了)。

在我的特定应用程序中,我需要在拖放场景中轻松跟踪,其中控件只能在相关控件的范围内拖动。因此,当我填充面板时,我使用" Tag“属性将索引填充到控件本身(实际上,我存储了对我的子控件包装的基类的引用,并在基类属性中维护索引,在将标记转换为基类之后,我可以查询该属性,但我离题了。该引用允许我获得光标下窗口的各种很酷的信息,以便在维护父索引的同时进行适当的显示和/或操作)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23345525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档