lovelytomcat 2015-11-11 01:50
浏览 1240

C# GDI+问题:如何在启动窗体之后直接在PictureBox上显示图形?

各位大神,菜鸟求助。我在窗体(Form1)新增了一个PictureBox控件pictureBox,想在窗体启动后在pictureBox上画一个跟pictureBox一样大的矩形,按按钮切换pictureBox的大小,矩形跟着改变。代码如下。现在碰到的问题是:
1. 窗体启动后pictureBox上没有显示矩形。
2. pictureBox从小切换到大的时候,picutreBox的尺寸的确变了,但画出来的矩形是改变前尺寸的大小。按理说调用Init()后再调用Draw()函数的,画出来的矩形该跟pictureBox一样大才对?
感觉这个问题该挺好解决的,就是找不到解决方法,在这里求助各位大神了,非常感谢!
代码:
public partial class Form1 : Form
{
private int option = 0;
public Form1()
{
InitializeComponent();
Init();
Draw();
}

    private void Form1_Load(object sender, EventArgs e)
    {
        pictureBox.Location = new Point(50, 80);
        pictureBox.BackColor = Color.White;       
    }
    private void Draw()
    {
        Graphics graphics = pictureBox.CreateGraphics();
        graphics.DrawRectangle(Pens.Black, new Rectangle(0, 0, pictureBox.Width - 2, pictureBox.Height - 2));
        graphics.Dispose();
    }

    private void Init()
    {
        if (option == 0)
        {
            pictureBox.Size = new Size(100, 100);
        }
        else if (option == 1)
        {
            pictureBox.Size = new Size(200, 200);
        }
        else if (option == 2)
        {
            pictureBox.Size = new Size(300, 300);
        }           

        this.ClientSize = new Size(pictureBox.Width + 100, pictureBox.Height + 100);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        option = (option + 1) % 3;
        Init();
        Draw();
    }
}
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 基于卷积神经网络的声纹识别
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
    • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
    • ¥15 CSAPPattacklab
    • ¥15 一直显示正在等待HID—ISP
    • ¥15 Python turtle 画图
    • ¥15 stm32开发clion时遇到的编译问题