C#のGraphicsクラスについて(GDI+)
以下のようにgraphicsクラスをつかった画像の描画をおこないました。
Graphics gr = Graphics.FromImage(mapObj);
というふうにからのリソースからGraphicsオブジェクトをつくる方法です。
using System;
using System.IO;
using System.Windows.Forms;
using System.Drawing;
using System.Web;
using System.Net;
using System.Text;
using System.Threading;
using System.ComponentModel;
public class MainClass{
public static void Main(string [] args){
NewForm formObj = new NewForm();
formObj.RenderMethod();
Application .Run(formObj);
}
}
public class NewForm : Form{
public NewForm(){
this.Width = 500;
this.Height = 500;
}
public void RenderMethod(){
Bitmap mapObj = new Bitmap(500,500);
Graphics gr = Graphics.FromImage(mapObj);
Image imageObj = Image.FromFile("C:\\test.jpg");
gr .DrawImage(imageObj, 0,0,150,150);
this.BackgroundImage = mapObj;
}
}
このほかに、フォームコントロールの thisl.CreateGraphics()という
メソッドを使っても画像を描画できるとききました。
あるサンプルをみると
public class NewForm : Form{
public NewForm(){
this.Width = 500;
this.Height = 500;
}
public void RenderMethod(){
Graphics gr = this.CreateGraphics();
Image imageObj = Image.FromFile("C:\\test.jpg");
gr .DrawImage(imageObj, 0,0,150,150);
}
}
とこのようにthis.CreateGraphics()をつかっていましたが
実際にはこれが描画されないのです。
Graphics gr = Graphics.FromImage(mapObj);
というGraphicsクラスの静的メソッドを使う方法ではなく
コントロールのCreateGraphicsメソッドをつかって描画するにはどうしたらよいのですか?
識者のかた、ご教授ください。
補足
imageフォルダはプロジェクトと同じディレクトリに配置しています。 exe配下には配置していません。 プロジェクトのフォルダを相対パスで指定したいです。