Панель Tablelayout - рисовать внешние границы и ячейку

У меня есть 3 строки в моем TableLayoutPanel, и я хочу нарисовать границы вокруг него следующим образом:

введите описание изображения здесь

Как я могу этого добиться?

Я пробовал это, но он не рисует внешние границы 1-й строки:

 If (e.Column = 0 And e.Row = 1) Then
            e.Graphics.DrawRectangle(New Pen(Color.FromArgb(94, 94, 94)), e.CellBounds)
        End If

Вывод этого кода:

введите описание изображения здесь

Любая помощь очень ценится!


person LuckyLuke82    schedule 20.10.2016    source источник
comment
не правильно понял вашу потребность. Вы хотите нарисовать прямоугольник, состоящий из 2 столбцов и 2 строк. Я прав? Ваш код рисует прямоугольник только для одной ячейки, в то время как ваше прикрепленное изображение показывает, что 2 ячейки ограничены красным прямоугольником.   -  person Mukul Varshney    schedule 20.10.2016
comment
@MukulVarshney, мне нужно первое изображение. второе изображение выводится из моего текущего кода. Красный цвет обозначает границу.   -  person LuckyLuke82    schedule 20.10.2016
comment
вывод вашего кода показывает границу вокруг 4 ячеек, в то время как я использовал ваш код, для меня он показывает границу только через 1 ячейку. Кроме того, как узнать, что вам нужна граница, через какие ячейки.   -  person Mukul Varshney    schedule 20.10.2016
comment
@MukulVarshney, извините, вы были правы, я разместил неправильные изображения. У меня есть только 1 столбец, спасибо за указание. Смотрите мой отредактированный вопрос сейчас, это то, что мне нужно.   -  person LuckyLuke82    schedule 20.10.2016


Ответы (1)


Я считаю, что проблема в части e.Row = 1. Помните, что первая строка имеет индекс 0.

Попробуй это:

If (e.Column = 0 And e.Row = 0) Then
    e.Graphics.DrawRectangle(New Pen(Color.FromArgb(94, 94, 94)), e.CellBounds)
End If
person theBugger    schedule 20.10.2016
comment
спасибо за ответ, но это явно не работает, оно просто создает границу вокруг верхней ячейки. Я знаю, что первая строка имеет индекс 0. - person LuckyLuke82; 21.10.2016
comment
Хорошо, это была очевидная ошибка. Я заметил, что вы рисуете только на одну ячейку. Вы должны взять текущие границы ячеек, границы следующей ячейки и создать новый прямоугольник из суммы двух. - person theBugger; 21.10.2016
comment
да, я знаю это, но я не могу понять, как, я уже много чего пробовал. - person LuckyLuke82; 21.10.2016
comment
Google для этого msdn.microsoft.com/en-us/library/ - person theBugger; 21.10.2016