メイン ビューとテーブル コントロールの 2 つの主要なカスタム コントロールが必要です。
テーブル コントロールは、すべての列でそれ自体を描画し、必要に応じてアイテムをスクロールできるようにする役割を果たします。また、指定された行ヘッダーの x/y 座標を提供する役割もあります。これは、関係線が正しい行に一致するようにするためです。
メイン ビューは、(カスタム テーブル オブジェクトに格納された) テーブル オブジェクトのリストを受け入れ、同じ数のテーブル コントロールを作成し、それらを指定された順序で配置する役割を果たします。また、テーブル コントロール間の線の描画も担当します。
全体として、これは些細なことではありません。このすべてのカスタム描画を行うには、これら両方のコントロールの OnPaint() メソッドをオーバーライドする必要があります。GDI+ グラフィックス ルーチンについて調べて、これを描画するために使用できる方法を見つけてください。おそらく、これらのオブジェクト/メソッドを最も頻繁に使用するでしょう:
Pen
SolidBrush
LinearGradientBrush
DrawRectangle()
FillRectangle()
DrawString()
DrawImage()
DrawLine()
DrawPath()
また、コントロールを移動できるようにするには、あらゆる種類のマウス イベントをトラップする必要があります。OnMouseDown
これは、またはなどのメソッドをオーバーライドすることで実行できますOnMouseMove
。
幸運を。