Application.Run(mf);的时候mf处于等待事件的状态,不会执行mf.draw(); 关闭mf后,执行mf.draw()语句; 但此时mf已经无效,所以CLR报错。为什么不这样:using System; using System.Windows.Forms; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Drawing.Drawing2D; class Class1 { static void Main(string[] args) { MainForm mf=new MainForm(); Application.Run(mf);
关闭mf后,执行mf.draw()语句;
但此时mf已经无效,所以CLR报错。为什么不这样:using System;
using System.Windows.Forms;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Drawing.Drawing2D;
class Class1
{
static void Main(string[] args)
{
MainForm mf=new MainForm();
Application.Run(mf);
//mf.draw();
}
} public class MainForm : System.Windows.Forms.Form
{
private System.ComponentModel.IContainer components=null; public MainForm()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
private void InitializeComponent()
{
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(376, 310);
this.Name = "MainForm";
this.Text = "MainForm"; }
protected override void OnPaint(PaintEventArgs pea)
{
Graphics dc=pea.Graphics;//this.CreateGraphics();
//this.Show();——when run ,it have been acted.
Pen p1=new Pen(Color.Blue, 5);
dc.DrawEllipse(p1, 5, 5, 100, 100); dc.Dispose(); } }