私は、階層構造でデータベース構造のグラフィカル表現を描画する C# win フォーム アプリケーションの開発に忙しくしています。
すべてが正常に機能していますが、スクロールに問題があります。ちらつきの問題があります。
以下のことを調べました。
Invalidate()表面をリフレッシュしたいときに呼び出します (かなり役に立ちましたが、まだ少しラグがあります)
また、DoubleBufferedプロパティをTrueに設定するには(これに関する問題で、ArgumentException「パラメータが無効です。」というメッセージがスローされます。しかしDoubleBuffered、メインフォームでtrueに設定できます)
私のデザインの詳細
私には2つのクラスがNodeありLink、どちらにもGraphicsPathメンバーがあり、両方ともpublic void Draw(Graphics g)自分自身を描画するメソッドを持っています.
StructureMapメソッドをオーバーライドしたユーザーコントロール呼び出しもあり、描画関数の呼び出しprotected override void OnPaint(PaintEventArgs e)ごとにループします。Node親ノードはLinkオブジェクトによって子ノードにリンクされているため、ループは単純です。親ノードの draw メソッドを呼び出すだけで、そのすべての子ノードも再描画されます。
ヒットテストも同じ方法で実行しています。
もっと良い方法はありますか?DoubleBufferedユーザー コントロールで true に設定できないのはなぜですか?
PS: これは私の最初の投稿です。