コントロールをホストするカスタムDataGridView
セル クラスを作成しています。セルを再配置して再描画する必要があるかどうかを知るためにイベントをリッスンしていInvalidated
ますが、セルを再配置すると他のホストされたセルが無効になり、最初のセルが無効になる可能性があるため、ループが発生します。ループを回避するために静的メンバーを使用したくありません。なぜなら、それらが一緒に使用された場合、類似しているが無関係なセルクラスによって引き起こされるループを防ぐことはできないからです。したがって、グリッドが現在無効になっているかどうかを確認する必要があります。それ、どうやったら出来るの?
2 に答える
1
無効化されたイベントを「聞く」必要はありません。ユーザー コントロールが無効になると、onpaint が自動的に呼び出されます。
最終的な問題を解決するためのより良い方法があるかもしれません (カスタム データグリッド ビューの描画に関して)。実装に関する詳細な質問を投稿して、これらの (一見奇妙な) 問題を回避する必要がないように、実装方法についていくつかのアイデアを求めることができます。
于 2009-03-17T15:27:32.753 に答える
0
Invalidated イベントをリッスンして応答しようとするのではなく、DataGridViewCell クラスの Paint メンバーをオーバーライドしたいようです。基本クラスがそれを処理し、グラフィックス オブジェクトと位置情報を Paint メソッドに直接提供します。
于 2009-03-17T13:41:31.073 に答える