我是c#的初学者,我想知道这里导致错误的是什么。我正在尝试在对象中设置宽度,高度,停靠点或图像。
private void Home_Load(object sender, EventArgs e)
{
string[] fileNo = File.ReadAllLines(@"..\..\images\Products\productListing.txt");
PictureBox[] imageControl = new PictureBox[fileNo.Length];
for (int i = 0; i < fileNo.Length; i++)
{
imageControl[i].Width = 400;
imageControl[i].Height = 400;
Bitmap image = new Bitmap(@"..\..\images\Products\" + i + ".jpg");
imageControl[i].Dock = DockStyle.Fill;
imageControl[i].Image = (Image)image;
Console.WriteLine(i);
}
}
我在
上遇到nullreferenceexception是未处理的错误imageControl[i].Width = 400;
imageControl[i].Height = 400;
imageControl[i].Dock = DockStyle.Fill;
imageControl[i].Image = (Image)image;
答案 0 :(得分:3)
您没有实例化任何PictureBoxes
。试试这个:
for (int i = 0; i < fileNo.Length; i++)
{
imageControl[i] = new PictureBox();
...
}
答案 1 :(得分:0)
首先创建PictureBox
类对象,然后分配这些属性。您只是想访问图片框,但您还没有启动该对象。
private void Home_Load(object sender, EventArgs e)
{
string[] fileNo = File.ReadAllLines(@"..\..\images\Products\productListing.txt");
PictureBox[] imageControl = new PictureBox[fileNo.Length];
for (int i = 0; i < fileNo.Length; i++)
{
imageControl[i] = new PictureBox(); // initiate object first
imageControl[i].Width = 400; // you are accessing a null object here.
imageControl[i].Height = 400;
Bitmap image = new Bitmap(@"..\..\images\Products\" + i + ".jpg");
imageControl[i].Dock = DockStyle.Fill;
imageControl[i].Image = (Image)image;
Console.WriteLine(i);
}
}
如果要将这些Picture控件添加到表单,请使用Form.Controls proertry添加它们。 例如 this.Controls.Add(imagecontrol [i]。但是记住你将这些控制Dock属性设置为Fill然后你只能一次看到图像。所以设置它们的大小和位置属性来显示它们。
希望这能帮到你..