0

我是 C# 编程的初学者,想在 windowsformapplication 中绘制一个矩形。我使用 Microsoft Visual Studio 2012 并获得了以下示例代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

    }
    private void FillRectangleRectangle(PaintEventArgs e)
    {

        // Create solid brush.
        SolidBrush blueBrush = new SolidBrush(Color.Blue);

        // Create rectangle.
        Rectangle rect = new Rectangle(0, 0, 200, 200);

        // Fill rectangle to screen.
        e.Graphics.FillRectangle(blueBrush, rect);
    }




    }
  }

但它不说话,有人可以帮助我吗?

4

3 回答 3

2

在您的表单上添加一个绘画事件并插入您的函数代码(这是正确的)。它应该如下所示:

private void Form1_Paint(object sender, PaintEventArgs e)
{
   SolidBrush blueBrush = new SolidBrush(Color.Blue);
   Rectangle rect = new Rectangle(0, 0, 200, 200);
   e.Graphics.FillRectangle(blueBrush, rect);
}

每当您想重绘表单时,请使用

Invalidate();
于 2013-05-23T12:56:04.540 回答
0

应该绘制的代码不会在任何地方被调用。这就是表单Paint事件的用途。您应该分配该事件,然后在您的代码中执行以下操作:

private void Form1_Paint(object sender, PaintEventArgs e)
{
    FillRectangleRectangle(e);
}
于 2013-05-23T13:05:55.917 回答
-1

我认为您需要刷新要绘制的对象。尝试其中之一

form.Invalidate();
form.Refresh();  
于 2013-05-23T12:56:13.990 回答