首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c#填充矩形MVS2012

c#填充矩形MVS2012
EN

Stack Overflow用户
提问于 2013-05-23 20:50:48
回答 3查看 98关注 0票数 0

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

代码语言:javascript
复制
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);
    }




    }
  }

但是它不能说话,有人能帮我吗?

EN

回答 3

Stack Overflow用户

发布于 2013-05-23 20:56:05

在窗体上添加一个paint事件,并插入函数的代码(正确)。它应该看起来像这样:

代码语言:javascript
复制
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);
}

无论何时想要重绘窗体,都可以使用

代码语言:javascript
复制
Invalidate();
票数 2
EN

Stack Overflow用户

发布于 2013-05-23 21:05:56

应该绘制的代码没有在任何地方被调用。这就是窗体的Paint事件的用途。您应该指定该事件,然后在您的代码中执行以下操作:

代码语言:javascript
复制
private void Form1_Paint(object sender, PaintEventArgs e)
{
    FillRectangleRectangle(e);
}
票数 0
EN

Stack Overflow用户

发布于 2013-05-23 20:56:14

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

代码语言:javascript
复制
form.Invalidate();
form.Refresh();  
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16714444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档