我正在使用此代码获取图片并以pictureboxes
特定的儿童形式显示它们,我将为4 5个更多的儿童表单做同样的事情,但我不希望这些图像重复在任何形式或图片框中,我该怎么做?在每张表格上我都有3 pictureboxes
public partial class MainForm : Form
{
string LoginName;
List<PictureBox> pictureBoxes;
List<String> filesToShow = new List<String>();
public MainForm(string lognName)
{
InitializeComponent();
this.LoginName = lognName;
pictureBoxes = new List<PictureBox> {
pictureBox1,
pictureBox2,
pictureBox3
};
ShowImages();
}
private List<String> GetFilesToShow()
{
String str = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
string path = str + "\\Image\\";
return Directory.GetFiles(path, "*.jpg", SearchOption.TopDirectoryOnly).ToList();
}
private void ShowImages()
{
List<int> selectedImages = new List<int>();
foreach (var pictureBox in pictureBoxes)
{
if (filesToShow != null && !filesToShow.Any())
{
filesToShow = GetFilesToShow();
}
if (filesToShow != null && filesToShow.Any()) // If any files then allow the code to delete the shown images
{
if (filesToShow.Count >= pictureBoxes.Count)
{
filesToShow.Reverse();
for (int i = 1; i < 4; i++)
{
pictureBox.ImageLocation = filesToShow[i];
}
}
}
}
}
}
答案 0 :(得分:0)
您可以维护所有图片的所有文件名的全局列表(例如在会话变量中)以及当您要将图像添加到图片框时的页面中,将其从全局列表中删除,因此在此在其他页面中它不会重复。
像这样的东西
Session["filenames"] = GetFilesToShow();