2012-04-26 75 views
0

我执行一个应用程序:加载图像滚动面板

  • 负载从“我的图片”文件夹中的图像的面板会自动加载时, 形式。 (您可以找到代码here

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

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

从“我的图片”自动加载图像的代码包含一个称为位置变量,它定义当前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

谢谢!

+0

你能发表一些代码吗? – GrandMasterFlush 2012-04-26 11:16:40

+0

你想删除旧照片? – Likurg 2012-04-26 11:22:18

+0

我已经读了几次你的问题,并有一些难以理解的问题。如果我不是唯一的人,请尝试重新提出您的问题。 – MasterMastic 2012-04-26 11:23:22

回答

0

尝试这样做

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

所以,当你调用这个位置又是willn't '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 
+0

但是,您将0作为初始值分配给方法正上方的位置。我试过了,没有工作。我认为我能做的唯一解决方案是清除并删除面板中的所有加载的图像并加载新的图像,但是如何删除它们? – toti 2012-04-26 12:23:17

+0

@Aram toti你在哪里加载它们?我需要控制名称,并显示如何添加图片 – Likurg 2012-04-26 12:31:23

+0

我将图片加载到面板,如本教程http://www.dreamincode.net/forums/topic/149251-create-image-scroller-for-windows-application/ ..我还希望通过单击打开文件夹按钮选择另一个文件夹来加载更多图片,以便面板将包含默认文件夹中的加载图片和我选择的文件夹中的图片。但正如我所提到的,由于打开文件夹方法中的位置初始值为0,因此新加载的图片将在旧的图片下。 – toti 2012-04-26 12:40:05