在绘图时,winform没有加载到其完整大小

时间:2017-09-16 12:52:53

标签: c# winforms

我只想在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);

    }

1 个答案:

答案 0 :(得分:1)

问题是:“钢笔=新笔(Color.Green,宽度= 2 );”它将表单的Width设置为2.您可以将其写为:

Pen pen = new Pen(Color.Green, width: 2);

或只是

Pen pen = new Pen(Color.Green, 2);