2013-03-13 3 views
0

4 개의 그림 상자, 하나의 단추 (업로드)가있는 winform 응용 프로그램 (VS 2008)이 있습니다. 단추를 클릭 할 때 첫 번째부터 마지막 ​​순서로 데이터베이스 (SQL Server 2005)의 기록 된 이미지를 그림으로 그립니다. 예 : 버튼을 누르면 첫 번째 그림 상자에 첫 번째 이미지가 표시되고 두 번째 그림에는 다른 그림 상자가 표시되며 첫 번째 그림 상자에는 다섯 번째 이미지가 표시됩니다.루프에서 4 개의 그림 상자로 데이터베이스에서 이미지를 검색하는 방법

pb1 = img1, pb2 = img2, pb3 = img3, pb4 = img4, pb1 = img5,..pb4 = img8,pb1 = img9,..etc.. 

그래서 루프가있었습니다. 이 코드는 가지고 있지만 사진 상자에는 하나의 이미지 만 기록했습니다.

+2

죄송합니다, 귀하의 질문은 무엇입니까 :

currentPictureBox = (currentPictureBox + 1) % pictureBoxCount; 

그럼 그냥 뭔가를 할 수 있습니까? –

+2

문제에 대한 해결책이 아니지만 FYI :'SqlConnection','SqlCommand','SqlDataAdapter' 및'MemoryStream'은 모두'using' 블록에 있어야합니다. –

+0

요한이 좋은 지적을했습니다. 그것들은 모두 관리되지 않는 리소스이므로 제대로 폐기하지 않으면 메모리 문제가 발생할 수 있습니다. – Beska

답변

1

pb1, pb2, pb3 등이있는 대신 그림 상자를 pictureBoxes와 같은 배열에 배치하십시오. 세계에서 배열의 크기를 넣고 배열을 선언하는 크기를 사용 (그래서 혹시 추가하거나 pictureboxes를 제거하면 쉽게 변하기 쉬워입니다.)

int pictureBoxCount = 4; 
int currentPictureBox = 0; 
PictureBox[] pictureBoxes = new PictureBox[pictureBoxCount]; 

그런 다음 사진을 다운로드 할 때마다, 업데이트 배열 인덱서.

pictureBoxes[currentPictureBox].Image = Image.FromStream(stream); 
관련 문제