コントロールのグリッドを使用すると、スローされます。タイルのグリッドを描画する「正しい」方法は、タイルのグリッドを描画することです。
イメージまたはインデックス/キーの配列をイメージコンテナに入れてペイントする独自のコントロールを作成できます。
UserControlではなく、Controlからカスタムコントロールを派生させます(UserControlはコントロールコンテナであり、必要ありません。スクロールバーが必要な場合は、ScrollableControlからの操作も可能です)。 OnPaintメソッドをオーバーライドして描画を実行します。 OnPaintに渡されるGraphicsオブジェクトを使用し、テキスト、プリミティブ、およびビットマップを描画するためのメソッドを持ちます。
MouseDown/Upをオーバーライドするか、消費者にそれを処理させるが、与えられたX、Yをグリッドインデックスに変換できるようにHitTestメソッドを提供することができます。
ここでは、ユーザーの入力に応じて省略記号を描くためのC# Drawing circles in a panelというコードがあります。そのコードから、コントロール上の状態をペイントする例を見ることができます(その場合のコントロールはフォームですが、カスタムコントロールに推論することもできます)。フリッカーを削除するためのコンストラクタのSetStyle呼び出しに注目してください。また、状態を変更したときに再描画を試みるのではなく、単に無効化するだけで、OSに再描画が必要であることが通知されます。
を更新しました
は、ここであなたが始めるために極めて粗製の例です: http://pastebin.com/DseuN56y
は、マップに画像を変換に関する有用な記事もあります[リンク](http://stackoverflow.com/q/10127871/1306322) – user1306322