|
原因がわかりました。
form1:作成画面です
呼び出し元で起動時 form1.showDialog(this) ※thisは呼び出し元
ArgumentExceptinが起こる。
Form1の描画メソッド(drawTime)の方で、formGraphics.Dispose();をやると、
呼び出し元で form1.showDialog(this) の部分で ArgumentExceptinが起こります。
ここをコメントアウトすると実行時エラーが起こらなくなりました。
private void pictureBox1_Paint(object sender, PaintEventArgs e) {
drawTime(sender, e);
}
private void drawTime(object sender, PaintEventArgs e) {
System.Drawing.Pen myPen;
myPen = new System.Drawing.Pen(System.Drawing.Color.Black);
System.Drawing.Graphics formGraphics = e.Graphics;
int x1 = 5;
int x2 = 2000;
int y1 = 20;
int y2 = 20;
formGraphics.DrawLine(myPen, x1, y1, x2, y2);
//MessageBox.Show("test");
int startx = x1;
int startHour = 8;
int count = 0;
while (startx <= x2) {
int amari = count % 6;
if (count == 0 || amari == 0) {
formGraphics.DrawLine(myPen, startx, y1 - 5, startx, y2 + 5);
string drawString = startHour.ToString();
System.Drawing.Font drawFont = new System.Drawing.Font("MS UI Gothic", 9);
System.Drawing.SolidBrush drawBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Black);
float x = startx - 5;
//float y = y1 - 20;
float y = y1 - 15;
formGraphics.DrawString(drawString, drawFont, drawBrush, x, y);
startHour++;
} else {
formGraphics.DrawLine(myPen, startx, y1 - 2, startx, y2 + 2);
}
count++;
startx += 10;
}
myPen.Dispose();
//formGraphics.Dispose();
}
|