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 求帮我调试一下freefem代码
    • ¥15 matlab代码解决,怎么运行
    • ¥15 R语言Rstudio突然无法启动
    • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
    • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
    • ¥15 用windows做服务的同志有吗
    • ¥60 求一个简单的网页(标签-安全|关键词-上传)
    • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?