将不同目录中的图像加载到滚动面板

时间:2012-04-26 11:14:57

标签: c# visual-studio-2010

我正在实施一个应用程序:

  • 当“我的图片”文件夹中的图像自动加载到面板时 表单已加载。 (您可以找到代码here

  • 我的程序中还有另一个功能:打开文件夹,启用用户 打开一个文件夹,将其图像加载到同一个面板。

我的问题是: 当我选择打开一个新文件夹时,此文件夹的图像会出现在“我的图片”文件夹的,我知道问题是什么,但我不知道如何解决。

从“我的图片”自动加载图像的代码包含一个名为Position的变量,用于定义当前PictureBox控件的位置,它的初始值为0.

//2 variables, one for the Y position of the current PictureBox control
            //and one for help count the number of images in the directory
            int position = 0;
            int count = 0;

打开文件夹的代码与我在加载“我的图片”中的图像时使用的代码相同,位置初始值也为0! 这就是为什么新加载的图像出现在旧图像下面的原因。

private void openFolderToolStripMenuItem_Click(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "Getting files.....";

            int position = 0;
            int count = 0;

我该如何解决这个问题?我想保存最新创建的PictureBox的位置,然后将其用作private void openFolderToolStripMenuItem_Click

中的初始值

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试这样做

        int position = 0;
        int count = 0;
        private void openFolderToolStripMenuItem_Click(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "Getting files.....";
            //your work
        }

所以当你再次调用它时,位置不会是'0'\

修改 我读了那个链接

PictureBox pb = new PictureBox();

您创建动态的控件,删除旧图像执行此操作

private void openFolderToolStripMenuItem_Click(object sender, EventArgs e)
        {
        foreach (Control ctrl in this.Controls)
        {
            if (ctrl is PictureBox)
                this.Controls.Remove(ctrl);
        }
        //Your code