首页 > 解决方案 > 矩形不会出现在表单框中

问题描述

我是 c# 的新手,我试图让一个矩形出现在表单框中(可能不是正确的名称),但是每次我运行代码时,无论我做什么,表单似乎都是空的。我使用的代码如下:

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 MovingObject
{
    public partial class ObjectMove : Form
    {
        public ObjectMove() => InitializeComponent();


        public void DrawRectangleRectangle(PaintEventArgs e)
        {


            Pen blackPen = new Pen(Color.Black, 3);


            Rectangle rect = new Rectangle(0, 0, 200, 200);


            e.Graphics.DrawRectangle(blackPen, rect);
        }

    }
}

标签: c#

解决方案


正如@mmathis 在评论中所暗示的那样,如果您的方法没有被调用,那么您将看不到矩形。

由于您的方法需要一个PaintEventArgs参数,因此调用它的一种简单方法是覆盖其中一个OnPaint事件处理程序并添加对该方法的调用。

这是一个覆盖“OnPaint”的工作示例

public partial class ObjectMove : Form
{
    public ObjectMove() => InitializeComponent();

    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
        DrawRectangleRectangle(e);
    }

    private void DrawRectangleRectangle(PaintEventArgs e)
    {
        Pen blackPen = new Pen(Color.Black, 3);
        Rectangle rect = new Rectangle(0, 0, 200, 200);
        e.Graphics.DrawRectangle(blackPen, rect);
    }
}

推荐阅读