C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 49 を表示中)
■26649 / )  Re[7]: ボタンクリック描画されるがFormLoadで描画されない
□投稿者/ ありあり (16回)-(2008/10/16(Thu) 15:58:16)
原因がわかりました。
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();
        }


返信 編集キー/


管理者用

- Child Tree -