DOSEIの日記

技術メモ+日常ログ

doublebuffered なコントロールを作る

以下, Visual C# 2008 Express での操作メモ.

  • FormDoublebuffered = true にできるので, ちらつかずにお絵描きできる
  • モダンなコントロール MenuStripToolStrip はクールだが, 伝統的なメニューとかと違い, クライアント領域の上に乗っかってるので, 絵が隠れる. しかも, それらがドッキングされていない領域を簡単に取得できない
  • PanelDock = full で配置してみても, こいつはなぜか Doublebufferedprotected なので変更できない.

というわけで, ユーザーコントロールで解決する方法.

  1. [プロジェクト]→[ユーザーコントロールの追加] で追加
  2. デザインのプロパティで Doublebuffered = true を設定
  3. 最低一回ビルドする。(重要)
  4. 開発中のフォームのデザインのツールボックスの一番上の辺りに今作ったコントロールがあるので使う
  5. doublebuffered なキャンバス完成.
  6. というか, このユーザコントロールに表示関係の機能を実装するとさらに便利かも.