Вам понадобятся два основных пользовательских элемента управления: главный вид и настольный элемент управления .
Элемент управления таблицы отвечает за рисование всех своих столбцов и обеспечивает возможность прокрутки элемента в случае необходимости. Он также отвечает за предоставление координаты x / y для указанного заголовка строки. Это делается для того, чтобы линии отношений могли соответствовать правильной строке.
Главное представление отвечает за принятие списка объектов таблицы (хранящегося в пользовательском объекте таблицы), создание того же числа элементов управления таблицей и размещение их в указанном порядке. Он также отвечает за рисование линий между элементами управления таблицей.
В общем, это не тривиально. Вы захотите переопределить метод OnPaint () обоих этих элементов управления, чтобы выполнить весь этот пользовательский рисунок. Проведите некоторое исследование графических процедур GDI +, чтобы выяснить, какие методы вы можете использовать, чтобы нарисовать это. Вы, вероятно, будете использовать эти объекты / методы чаще всего:
Pen
SolidBrush
LinearGradientBrush
DrawRectangle()
FillRectangle()
DrawString()
DrawImage()
DrawLine()
DrawPath()
Вам также понадобится перехватывать все виды событий мыши, чтобы можно было перемещать элементы управления. Это может быть сделано путем переопределения методов, таких как OnMouseDown
или OnMouseMove
.
Удачи.