Relative Content

Daily Archives: May 27, 2016

C# exercises (6) Graphics and Paint

Graphicsオブジェクト ウインドウの内部を表示したり描き直したりする必要が生ずると、Formに「Paint」というイベントが発生し、Paintプロパティに設定されているメソッドが呼び出されるようになっています。 このPaintイベント用のメソッドは、これまでのクリック時のイベント用メソッドなどとは微妙に違いがあります。これは以下のように定義されます。 private void メソッド名 (object sender, PaintEventArgs e) {     ……ここに描画処理を書く…… } 第1引数に、イベントが発生したオブジェクトが渡されるのは同じですが、第2引数に渡されるのはSystem.Windows.Formsパッケージの「PaintEventArgs」というクラスのインスタンスです。これは、描画のためのイベント情報を管理するもので、描画に必要なオブジェクトなどもこの中にまとめられているのです。 中でも重要なのが「Graphics」というオブジェクトです。これはSystem.Drawingパッケージに用意されているクラスで、これはGDI+(Graphics Device Interfaceというグラフィック描画のための機能の強化版)を利用して画面にさまざまな描画を行うための機能を提供します。 Paintイベント フォームのプロパティをイベントに切り替えて、Paintイベントを探し、メソッド名Form1Paintを入力 Paintイベントで渡されるPaintEventArgsインスタンスから以下のようにして取り出します。 Graphics 変数 = 《PaintEventArgs》.Graphics; Penと図形の描画 g.DrawLine(p,75,75,50,50);  // 直線 g.DrawEllipse(p,75,75,50,50);  // 円 private void Form1Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; Pen p = new Pen(Color.Red); // Penインスタンスの作成 g.DrawEllipse(p,75,75,50,50); } Penと多角形を描く private void […]