현재 내 응용 프로그램은 6 개의 그림 상자를 표시하며 각 그림 상자는 지속적으로 업데이트되는 그림을 표시합니다.Picturebox를 다른 양식으로 확장하는 방법은 무엇입니까?
이제 그림 상자가 확장 된 그림 상자를 클릭하고 선택한 그림 상자를 표시하는 전체 화면을 채우고 싶습니다.
이것이 가능합니까? 이 일을 위해 다른 양식을 만들어야합니까? 사전에
감사합니다, Perumal
현재 내 응용 프로그램은 6 개의 그림 상자를 표시하며 각 그림 상자는 지속적으로 업데이트되는 그림을 표시합니다.Picturebox를 다른 양식으로 확장하는 방법은 무엇입니까?
이제 그림 상자가 확장 된 그림 상자를 클릭하고 선택한 그림 상자를 표시하는 전체 화면을 채우고 싶습니다.
이것이 가능합니까? 이 일을 위해 다른 양식을 만들어야합니까? 사전에
감사합니다, Perumal
(그들이 할 수있는이 같은 방법으로 모든 점)
picturebox_Click(object sender .....)
{
PictureBox pb= (PictureBox)sender;
if (pb.dock==DockStyle.None)
{
pb.dock=DockStyle.Fill;
pb.BringToFront();
}
else
pb.dock=DockStyle.None;
}
여기, 코드를 볼 수 없음은 프로그래밍 클릭에 그림 상자를 변경하는 방법입니다.
pictureBox1.Dock = DockStyle.Fill
따라서 클릭 이벤트 처리기를 만들고 위 그림과 같이 도크 기능을 호출해야합니다. 의견
에 응답
업데이트는 다시 이미지를 원래 크기로 되돌릴 수있는 DockStyle.None
있습니다. 또 다른 하나를 클릭 커지고 줄어 듭니다, 내가 제대로 이해하면
, 당신은 6 개 사진을 갖고 싶어하고 때 다시 클릭, 그것은 채워 하나를 클릭 채우기 등 등 ...이 작업을 수행하려면 다음
, 당신은 것 그림 상자에서 Dock 및 Visible 속성을 사용하십시오. 이제는 마치 을 묻는 것처럼 실제로 코드를 작성하는 것 같습니다. 당신은 몇 가지 코드를 보여 글쎄, 내가 그것을 접근하려는 방법에 갈 아무것도, 포인터를 줄 수있는가하는 것입니다
그들에게 상태를 목록에있는 모든 그림 상자를 넣고 지정 Big
또는 Small
.
클릭 한 그림 상자의 상태를 변경하려면 각 그림 상자마다 OnClick을 작성하십시오.
각 OnClick은 목록의 각 그림 상자를 반복하여 작은 표식과 DockStyle을 숨기는 도우미 함수를 호출합니다. 큰 그림을 채우십시오.
위의 알고리즘이 필요한 것을 달성합니까?
안녕하세요, Joe하지만이 방법을 사용하면 화면이 가득 차지만 다른 이미지는 계속 표시됩니다. 다른 이미지는 계속 표시되며 선택한 이미지가 전체 화면을 채 웁니다. 선택한 이미지 만 표시하고 화면을 채우려면 어떻게합니까? – perumal316
그 중 6 개만 프로그램 적으로 숨길 수 있습니다.'picturebox2.Visible = false' – Joe
@joe - 양식이 어떻게 보이는지 모르지만 어떻게 원래 화면으로 돌아갈 계획입니까? 귀하의 앱이 어떻게 생겼는지 생각해보십시오.양식에 6 개의 그림 상자가 있습니다. 그림 상자를 클릭하여 전체 양식을 덮어서 해당 그림 상자의 그림 만 표시되도록하십시오. 그러면 그림 상자 2를 클릭 할 수 있습니다. 어떻게 할 계획입니까? 나는 완전히 이해하지 못한다. 하지만 조금 더 많은 정보가 도움이 될 것입니다. –
다음과 같이 시도해보십시오. 코드는 고려 다시하지 않습니다하지만 난 당신이 할 수있는 확신이 그림 상자 각 onclick 이벤트에
private bool isfill = false;
private void pictureBox1_Click(object sender, EventArgs e)
{
if (!isfill)
{
pictureBox1.Dock = DockStyle.Fill;
pictureBox2.Visible = false;
isfill = true;
}
else
{
pictureBox1.Dock = DockStyle.None;
pictureBox2.Visible = true;
isfill = false;
}
}
private void pictureBox2_Click(object sender, EventArgs e)
{
if (!isfill)
{
pictureBox2.Dock = DockStyle.Fill;
isfill = true;
pictureBox1.Visible = false;
}
else
{
pictureBox2.Dock = DockStyle.None;
isfill = false;
pictureBox1.Visible = true;
}
. 무엇보다이 코드는 페이지와 페이지가 될 것입니다 ... – Joe
그 이유는 코드가 다시 고려되지 않았다는 것입니다. 모든 이벤트 처리기의 기능이 동일하기 때문에이를 다른 메서드에 넣고 각 그림 상자의 이벤트 처리기에서 해당 메서드를 호출 할 수 있습니다. 코드로 범용 이벤트 핸들러를 생성 한 다음 모든 그림 상자에 할당함으로써 코드를 더욱 향상시킬 수 있습니다.이 경우 송신자를 메소드에 전달해야합니다. –
하지만 모든 pictureBox_click에서 다른 모든 그림 상자의 표시 및 도크 스타일을 복사/붙여 넣기해야합니다. 기본적으로 n 개의 그림 상자, 즉 n * n 줄에 대해 동일한 작업을 n 번 작성해야합니다. 이벤트 핸들러는 각 그림 상자가 다른 모든 것을 보이지 않게하기 위해 알 필요가 있기 때문에 동일하지 않습니다. ** 모든 상자가 목록에 있으면 ** 쓰고 읽고 쓰는 것이 덜 어려울 것입니다 **. – Joe
WPF, 윈폼? –
WinForms를 사용하는 데스크톱 용입니다. – perumal316