使用图像填充面板.Winforms

时间:2009-04-10 09:33:58

标签: c# .net winforms

我将此代码显示在带有pIctureBox的面板图像中:

private void ARR(int cNumber, string exc)
    {
       int Xpos = 8;
        int Ypos = 8;
        Image img;
            Image.GetThumbnailImageAbort myCallback = 
            new Image.GetThumbnailImageAbort(ThumbnailCallback);
        imgArray = new System.Windows.Forms.PictureBox[cNumber]; // assign number array 
        for (int i = 0; i < cNumber; i++)
        {
            imgArray[i] = new System.Windows.Forms.PictureBox(); 
            if (Xpos > 432) // six images in a line
            {
                Xpos = 8; // leave eight pixels at Left 
                Ypos = Ypos + 72;  // height of image + 8
            }     
            imgArray[i].Left = Xpos;
            imgArray[i].Top = Ypos;
            imgArray[i].Width = 64;
            imgArray[i].Height = 64;
            imgArray[i].Visible = true;         
            imgArray[i].SizeMode = PictureBoxSizeMode.StretchImage;
            img = Image.FromFile(exc);
            imgArray[i].Tag = exc[i]; 
            imgArray[i].Image = img.GetThumbnailImage(64, 64, myCallback, IntPtr.Zero);
            panel1.Controls.Add(imgArray[i]);
            Xpos = Xpos + 72;
        }

    }

私人列表GetPicture4(字符串文件夹)         {

        DirectoryInfo dir = new DirectoryInfo(Folder);
        List<string> str = new List<string>();
        FileInfo[] files = dir.GetFiles("*.jpg", SearchOption.AllDirectories);   
        NumOfFiles = files.Length;
        imgExtension = new string[NumOfFiles];

        for (int i = 0; i < NumOfFiles; i++)
        {

        foreach (FileInfo file in files)
        {
            ARR(NumOfFiles, file.FullName);
            str.Add(file.FullName);

      }
        return str;
    }

在“Music”文件夹中有30个file.jpg但是当我调试Panel时显示30张图片但是同一个文件“jpg”。 我不明白错误在哪里:(。 你有什么建议或想法我错了吗? Thansk很多。

好的问候

1 个答案:

答案 0 :(得分:1)

没想出来但你的代码不起作用:

private List<string> GetPicture4(string Folder)  //you need to define the type of list you are returning
{
    DirectoryInfo dir = new DirectoryInfo(Folder);
    List<string> str = new List<string>();
    FileInfo[] files = dir.GetFiles("*.jpg", SearchOption.AllDirectories);   
    int NumOfFiles = files.Length; //here you are missing a type, int in this case
    imgExtension = new string[NumOfFiles];

    for (int i = 0; i < NumOfFiles; i++)
    {
        ARR(i, files[i].FullName); //pass i instead of NumOfFiles else in ARR the creating of the picturebox gets the same ID everytime
        str.Add(files[i].FullName);
    }

    return str;
}

编辑: ADD功能怎么样:

imgArray = new System.Windows.Forms.PictureBox[cNumber]; // assign number array 

此行不应该在这里。你已经在循环中创建了一个