c# - 矩形不会出现在表单框中
问题描述
我是 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);
}
}
}
解决方案
正如@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);
}
}
推荐阅读
- python - 将颜色与 matplotlib 散点图中的数字相关联
- linux - 在 Windows 机器上运行 Linux Docker 容器是否有先决条件?
- codenameone - 如何改进 ConnectionRequest 的行为?
- c# - 分离实体 EF 不支持延迟加载
- django - Django 模型字段作为按钮组
- python - 如何通过 DRF 在 API 中发送外键数据类型
- python - Django DB query becomes 'None' as seen with DEBUG=True inside a long-running management command
- android - Android MVVM 2 ViewModels 与 LiveData 共享 1 个存储库
- vim - 我安装了 vim 环绕插件,但它不工作
- swift - 在 SwiftUI 中使用 Bool In Struct