111,096
社区成员




返回光标处的行索引号()
public int GetRowIndexAt(int mouseLocation_Y)
{
if (dataGridView1.FirstDisplayedScrollingRowIndex < 0)
{
return -1; // no rows.
}
if (dataGridView1.ColumnHeadersVisible == true && mouseLocation_Y <= dataGridView1.ColumnHeadersHeight)
{
return -1;
}
int index = dataGridView1.FirstDisplayedScrollingRowIndex;
int displayedCount = dataGridView1.DisplayedRowCount(true);
for (int k = 1; k <= displayedCount; ) // 因为行不能ReOrder,故只需要搜索显示的行
{
if (dataGridView1.Rows[index].Visible == true)
{
Rectangle rect = dataGridView1.GetRowDisplayRectangle(index, true); // 取该区域的显示部分区域
if (rect.Top <= mouseLocation_Y && mouseLocation_Y < rect.Bottom)
{
return index;
}
k++; // 只计数显示的行;
}
index++;
}
return -1;
}