根据点+ c#定位网格单元格

时间:2018-04-19 08:36:03

标签: c# grid cells

我在网格上有固定大小的小面板(单元格)。单元格具有尺寸(高度,宽度)和位置(左侧,顶部坐标)。我有一个更大的面板移动这些小面板。当我拖动它们时,我想突出显示面板移动的单元格。

我根据鼠标位置(x,y)计算了该移动面板的新点(拖动事件)。

我想找出(x,y)所在的单元格。

网格的创建在不同的视图上。面板的创建和移动在另一个视图中。因此,我无法使用dataGridView1_CellMouseMove()事件和DataGridViewCellMouseEventArgs。我需要一个方程式来比较它是否位于细胞边界内。我有网格内的单元格数据,因此它的尺寸和位置。

1 个答案:

答案 0 :(得分:0)

我需要一个数学解决方案而且我找到了它!

假设每个单元格的宽度= 2,高度= 1,并且有10 * 10个单元格。

总面积= 200(10 * 10 * 2)

如果我的观点(或位置)是50 * 50,

  • 从左(50/2)开始是第25个细胞(因为宽度= 2),从顶部开始是第50个细胞(50/1)(因为高度= 1)。 (提供的单元格从左到右依次编号;从上到下。)