繁体   English   中英

如何解决picturebox1是null?

[英]How to solve picturebox1 is null?

我正在开发一个演示,目前,它只是根据用户的输入更改 PictureBox 的宽度和高度。

为此,用户在一个 Windows Forms 中输入数据,而 PictureBox 在另一个 PictureBox 中。

它们通过构造函数交换数据,如下代码所示:

if (pf.GetData().Item1 >= int.Parse(textBox1.Text) && pf.GetData().Item2 >= int.Parse(textBox2.Text))
{
    PictureForm pbf = new PictureForm(int.Parse(textBox1.Text), int.Parse(textBox2.Text));
    pf.Show();
    this.Hide();
}

在第一个表格中

public PictureForm(int newMaxX, int newMaxY)
{
    pictureBox1.Width = newMaxX;
    pictureBox1.Height = newMaxY;
}

和构造函数。

当我首次亮相并输入所有内容时,此错误消息显示:

System.NullReferenceException:“对象引用未设置为 object 的实例。”

pictureBox1 是 null。

我真的不明白怎么了。 有人可以帮我吗?

在表单构造函数中,您必须调用InitializeComponent 这将创建并配置控件。

public PictureForm(int newMaxX, int newMaxY)
{
    InitializeComponent();
    pictureBox1.Width = newMaxX;
    pictureBox1.Height = newMaxY;
}

表单是用分部类实现的。 即,表单 class 被分成两个代码文件: PictureForm.cs (这是您的用户代码所在的位置)和PictureForm.designer.cs 后者由 forms 设计者创建并包含InitializeComponent方法。 您可以打开此文件并查看此方法的作用。 所有具有所有属性的控件都在这里创建。 这是保存表单时保存的内容。 即,存储表单的地方没有神秘的文件格式,因为所有内容都存储为 C# 代码(资源除外,例如存储在PictureForm.resx中的图标)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM