Как узнать координаты кликнутой ячейки tableLayoutPanel - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Проблема такая: нужно по клику на ячейке добавить в неё userControl все получается, но... как узнать координаты кликнутой ячейки, что бы добавить именно в неё а не в (0, 0) Пишу так:
private void tableLayoutPanel2_MouseClick(object sender, MouseEventArgs e)
{
    tableLayoutPanel2.Controls.Add(new UserControl1(), /*Вот здесь что вставить?*/);
}

Решение задачи: «Как узнать координаты кликнутой ячейки tableLayoutPanel»

textual
Листинг программы
 private void tableLayoutPanel1_MouseDoubleClick(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))
                    {
 
                        MessageBox.Show(String.Format("row {0}, column {1} was clicked", row, column));
 
                        return;
 
                    }
 
                    horizontalOffset += w;
 
                    column++;
 
                }
 
                verticalOffset += h;
 
                row++;
 
            }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5
Похожие ответы