如何获得用户在c#中的布局中单击的特定小室的位置

问题描述 投票:0回答:1

如何获得用户在tablelayoutpanel中单击的单元格索引的值。我想获取列和行的值,然后在消息框中显示它。

我如何使用C#实现呢?

c# tablelayoutpanel
1个回答
0
投票

您可以这样获得位置:

  private void tableLayoutPanel1_MouseClick(object sender, MouseEventArgs e)
    {
        int row = 0;
        int verticalOffset = 0;
        foreach (int h in tableLayoutPanel1.GetRowHeights())
        {
            int column = 0;
            int horizontalOffset = 0;
            foreach(int w in tableLayoutPanel1.GetColumnWidths())
            {
                Rectangle rectangle = new Rectangle(horizontalOffset, verticalOffset, w, h);
                if(rectangle.Contains(e.Location))
                {
                    Trace.WriteLine(String.Format("row {0}, column {1} was clicked", row, column));
                    return;
                }
                horizontalOffset += w;
                column++;
            }
            verticalOffset += h;
            row++;
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.