我只想在form1 click事件上的表单上绘制随机矩形。 是什么导致我的表单无法加载到其完整大小,例如我将其设置为800x600,当我启动程序时,它看起来像这样:form1
此外,我无法调整大小,当我尝试做它只是闪烁。
我只是画画画事件而且点击失效,这个代码一般是错的吗?我意识到有什么东西覆盖它并在它加载之前刷新它,对不起这个初学者的问题,但我无法在任何地方找到答案
public Form1()
{
InitializeComponent();
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
Random rand = new Random();
int pos = rand.Next(0, 100);
Rectangle rect = new Rectangle(pos, pos, 50, 50);
Pen pen = new Pen(Color.Green, Width = 2);
g.DrawRectangle(pen, rect);
}
private void Form1_Click(object sender, EventArgs e)
{
Invalidate();
}
设计师代码: 基本上只是在上面初始化组件和经典覆盖void dispose。
private void InitializeComponent()
{
this.SuspendLayout();
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(630, 522);
this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
this.Click += new System.EventHandler(this.Form1_Click);
this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
this.ResumeLayout(false);
}
答案 0 :(得分:1)
问题是:“钢笔=新笔(Color.Green,宽度= 2 );”它将表单的Width
设置为2.您可以将其写为:
Pen pen = new Pen(Color.Green, width: 2);
或只是
Pen pen = new Pen(Color.Green, 2);