2017-06-12 83 views
0

我在我的視圖和一個圖片框中有兩個按鈕。我想設計一個代碼,使圖片框在一個目錄中顯示圖像,並在點擊兩個按鈕之一後顯示下一個圖像。基本上,它應該等待用戶點擊按鈕。在Visual Studio C#中等待foreach循環點擊按鈕

This is snapshot of my view

這是示例代碼。請幫幫我。

foreach (string file in Directory.EnumerateFiles(sourcePathImages, "*.jpg")) 
     { 

      Image loadedImage = new Bitmap(file); 
      if (loadedImage != null) 
      { 
       pictureBox1.Image = loadedImage; 
       filename.Text = filenames[counter]; 
       label.Text = labels[counter++]; 
      } 

     } 

什麼要添加到foreach循環,以便我的代碼等到兩個按鈕之一被按下。

+3

這是不正確更不用說低效代碼迴路周圍等待點擊一個按鈕。請閱讀_events_ – MickyD

+0

保存文件列表,然後改變按鈕處理程序中的圖像。 –

+0

應該使用圖像按鈕 – Alex78191

回答

0

您可以將Directory.EnumerateFiles轉換爲List並保留當前圖像名稱的索引。 或者您可以使用GetFiles()方法來獲取名稱數組。

+0

有5000個圖像文件,所以一次加載它們效果不佳。另外,我想讓我的代碼等待,直到用戶按下其中一個按鈕。只要用戶按下兩個按鈕中的一個,圖片框就會顯示下一張圖片和相同的過程。 – yashfujifilm

+0

@yashfujifilm僅加載文件名 – Alex78191

+0

我已將文件名存儲在數組中。我的問題是讓它等待用戶單擊其他輸入。 – yashfujifilm

0

,你可以嘗試這樣的事情

private int pictureIndex = 0; 
string filePath = "C:/Users/Pictures"; 
string[] files = Directory.GetFiles(filePath); 

private void Next_Click(object sender, EventArgs e) 
{ 
    pictureIndex++; 
    if (pictureIndex > files.Length) 
    { 
     pictureIndex = 0; 
    } 
    pictureBox1.Image = Image.FromFile(files[pictureIndex]); 
} 

同爲上一個按鈕,可以使用

pictureIndex--; 
+0

謝謝,這工作 – yashfujifilm

+0

你歡迎:)如果這對你工作,請接受這個答案:) – Znaneswar