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 js调用html页面需要隐藏某个按钮
    • ¥15 ads仿真结果在圆图上是怎么读数的
    • ¥20 Cotex M3的调试和程序执行方式是什么样的?
    • ¥20 java项目连接sqlserver时报ssl相关错误
    • ¥15 一道python难题3
    • ¥15 牛顿斯科特系数表表示
    • ¥15 arduino 步进电机
    • ¥20 程序进入HardFault_Handler
    • ¥15 oracle集群安装出bug
    • ¥15 关于#python#的问题:自动化测试