Нарисуйте границу галочки вокруг группы ячеек (TableLayoutPanel C#)

Я делаю поле судоку в приложении Windows Form (C#)

Я использовал TableLayout, чтобы сделать свои поля для надписей для чисел, отображаемых в судоку, теперь мне нужна толстая рамка вокруг каждой группы ячеек 3х3 (например, судоку)...

Я пытаюсь с объектом CellPaint, но я не могу установить границу вокруг группы границ...

3 ответа

Решение

Шаг 1

  • Создать UserControl
  • Установите для фона значение "Черный", для поля "0", "0", "0", "0" и "Отступ" - 3, 3, 3, 3.
  • Добавьте TableLayoutControl с 3 рядами и 3 ячейками (33% каждый)
  • Установите для TableLayoutControl Dock значение Fill, а для BackColor - значение Black
  • Добавьте метку в каждую ячейку, поле 1, BackColor White

Шаг 2

  • Создайте еще один UserControl с ячейками 3х3 (по 33%)
  • добавить экземпляр вашего первого UserControl в каждую ячейку
  • теперь у вас есть двойные границы, где два элемента управления находятся рядом друг с другом, но вы можете легко настроить это, установив отступы для отдельных пользовательских элементов управления. Я бы посоветовал вам оставить один в середине с 3, 3, 3, 3 и изменить внешние элементы управления

Вот пример, слева - UserControl1, справа - UserControl2 с 9x UserControl1
Я использовал прокладку 4 на внешних сторонах и прокладку 2 на внутренних сторонах.

Образец

Вы можете попытаться добавить панель в левую верхнюю ячейку и установить для нее RowSpan и ColSpan 3. После этого вы можете нарисовать на ней любую границу.

Мы должны были изменить наш код для создания меток и делаем это таким образом...

 const int spacing = 30; // ruimte tussen kotjes
                    int aantal = (int) nudColsPerBlock.Value * (int) nudRowsPerBlock.Value; // итоговые суммы на ридж / колом
                    Метка [][] SudokuRaster = новая Метка [aantal][];
                    для (int x = 0; x 

Но мне все еще нужны толстые границы между некоторыми этикетками, какие-нибудь советы?

Другие вопросы по тегам