我正在关注this 教程并下载源代码进行练习,并且它有效。当我重写代码时会出现问题:只添加一个图像而不是所有选定的图像。我在这里做错了什么?
private void button1_Click(object sender, EventArgs e)
{
ofd.Filter = "Images (*.BMP;*.JPG;*.GIF,*.PNG,*.TIFF)|*.BMP;*.JPG;*.GIF;*.PNG;*.TIFF|" +
"All files (*.*)|*.*";
ofd.Multiselect = true;
if (ofd.ShowDialog() == DialogResult.OK)
{
foreach (string name in ofd.FileNames)
{
PictureBox imageControl = new PictureBox();
imageControl.Width = 100;
imageControl.Height = 100;
Image.GetThumbnailImageAbort CallBck = new Image.GetThumbnailImageAbort(ThumbnailCallback);
Bitmap myBitmap = new Bitmap(name);
Image img = myBitmap.GetThumbnailImage(97, 97, CallBck, IntPtr.Zero);
imageControl.Image = img;
panel1.Controls.Add(imageControl);
}
}
}
答案 0 :(得分:3)
我敢打赌他们 都被添加但是他们只是在面板中的位置(0,0)处于彼此之上(你应该单步执行代码检查这虽然)。
解决方案:手动为每个新PictureBox指定位置,或使用布局控件,例如FlowLayoutPanel
。