C# 如何在flowLayoutPanel中获取动态picturebox的图像
这就是我打开多个图片并设置为FlowlyOutpanel的方式C# 如何在flowLayoutPanel中获取动态picturebox的图像,c#,C#,这就是我打开多个图片并设置为FlowlyOutpanel的方式 DialogResult dr = this.openFileDialog.ShowDialog(); if (dr == System.Windows.Forms.DialogResult.OK) { // Read the files foreach (String file in openFileDialog.FileNames)
DialogResult dr = this.openFileDialog.ShowDialog();
if (dr == System.Windows.Forms.DialogResult.OK)
{
// Read the files
foreach (String file in openFileDialog.FileNames)
{
// Create a PictureBox.
try
{
PictureBox pb = new PictureBox();
Image loadedImage = Image.FromFile(file);
pb.Height = loadedImage.Height;
pb.Width = loadedImage.Width;
pb.Image = loadedImage;
flowLayoutPanel1.Controls.Add(pb);
}
catch (SecurityException ex)
{
MessageBox.Show("Security error. Please contact your administrator for details.\n\n" +
"Error message: " + ex.Message + "\n\n" +
"Details (send to Support):\n\n" + ex.StackTrace
);
}
catch (Exception ex)
{
MessageBox.Show("Cannot display the image: " + file.Substring(file.LastIndexOf('\\'))
+ ". You may not have permission to read the file, or " +
"it may be corrupt.\n\nReported error: " + ex.Message);
}
}
}
这就是我卡住的地方,我需要通过循环在每个图片框中获取图像
foreach (Control ctrl in flowLayoutPanel1.Controls) {
if (ctrl is PictureBox) {
//problem goes here
Image img = (PictureBox)ctrl.Image;
byte[] arr;
ImageConverter converter = new ImageConverter();
arr = (byte[])converter.ConvertTo(img, typeof(byte[]));
}
}
是否有方法将控件强制转换为picturebox?使用类型的按类型筛选集合
using System.Linq;
...
foreach (PictureBox pictureBox in flowLayoutPanel1.Controls.OfType<PictureBox>())
{
Image img = pictureBox.Image;
byte[] arr;
ImageConverter converter = new ImageConverter();
arr = (byte[])converter.ConvertTo(img, typeof(byte[]));
}
使用System.Linq;
...
foreach(flowLayoutPanel1.Controls.OfType()中的PictureBox PictureBox)
{
图像img=pictureBox.Image;
字节[]arr;
ImageConverter converter=新的ImageConverter();
arr=(byte[])ConvertTo(img,typeof(byte[]);
}
使用类型的按类型筛选集合
using System.Linq;
...
foreach (PictureBox pictureBox in flowLayoutPanel1.Controls.OfType<PictureBox>())
{
Image img = pictureBox.Image;
byte[] arr;
ImageConverter converter = new ImageConverter();
arr = (byte[])converter.ConvertTo(img, typeof(byte[]));
}
使用System.Linq;
...
foreach(flowLayoutPanel1.Controls.OfType()中的PictureBox PictureBox)
{
图像img=pictureBox.Image;
字节[]arr;
ImageConverter converter=新的ImageConverter();
arr=(byte[])ConvertTo(img,typeof(byte[]);
}
图像img=((PictureBox)ctrl).Image代码>哦!我只是缺少一些括号。得到它图像img=((PictureBox)ctrl).Image代码>哦!我只是缺少一些括号。知道了