나는 B11 (co-ords 1,1)에서 B55 (co-ords 5,5)라는 이름의 picturebox 배열을 가지고 있습니다. 나는이 모든 것을 시작시 (그리고 실행 중)에 숨기려고한다. 수동으로 이름을 배열 할 생각 이었지만 가장 좋은 해결책이 될까요?pictureboxes 배열을 숨기는 가장 빠른 방법
0
A
답변
1
그들은 모두 같은 패널이나 그룹 상자 (또는 형태)와 같은 공통의 부모 컨트롤을 가지고있는 경우 :
Parent.SuspendLayout()
For Each pbox As PictureBox in Parent.Controls.OfType(Of PictureBox)()
pbox.Visible = False
Next pbox
Parent.ResumeLayout()
다음은 무리를 수정으로 깜박임 방지하는 것입니다) 다시 시작 - 레이아웃 (/ 일시 중지 한 번에 통제.
+1
'Parent'는 그림 상자 만 포함한다고 가정하면'Parent.Visible = false'를 할 수 있습니다. – Kratz
0
당신은에 PictureBox 클래스를 확장하여이 작업을 수행하는 이벤트 처리를 사용할 수 있습니다 : 그림 상자가 표시되거나 숨겨해야하는지 알려 폼에 공용 속성을 추가
- .
- 그림 표시/숨기기 대화 상자 속성을 변경할 때 발생하는 폼에 이벤트 추가.
- 부모 폼의 이벤트를 구독하도록 PictureBox 클래스를 확장합니다.
- 확장 된 PictureBox 클래스의 visible 속성을 부모 폼의 show/hide 속성으로 설정합니다.
부모 양식에서 표시/숨기기 플래그가 변경되면 모든 그림 상자가 그에 따라 가시성 속성이 변경됩니다.
양식 코드 :
public partial class PictureBoxForm : Form {
public PictureBoxForm() {
InitializeComponent();
this.pictureBoxesAdd();
}
private void pictureBoxesAdd() {
MyPictureBox mp1 = new MyPictureBox();
mp1.Location = new Point(1, 1);
MyPictureBox mp2 = new MyPictureBox();
mp2.Location = new Point(200, 1);
this.Controls.Add(mp1);
this.Controls.Add(mp2);
}
public event EventHandler PictureBoxShowFlagChanged;
public bool PictureBoxShowFlag {
get { return this.pictureBoxShowFlag; }
set {
if (this.pictureBoxShowFlag != value) {
pictureBoxShowFlag = value;
if (this.PictureBoxShowFlagChanged != null) {
this.PictureBoxShowFlagChanged(this, new EventArgs());
}
}
}
}
private bool pictureBoxShowFlag = true;
private void cmdFlip_Click(object sender, EventArgs e) {
this.PictureBoxShowFlag = !this.PictureBoxShowFlag;
}
}
확장에 PictureBox 번호 :
public class MyPictureBox : PictureBox {
public MyPictureBox() : base() {
this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.ParentChanged += new EventHandler(MyPictureBox_ParentChanged);
}
private void MyPictureBox_ParentChanged(object sender, EventArgs e) {
try {
PictureBoxForm pbf = (PictureBoxForm)this.Parent;
this.Visible = pbf.PictureBoxShowFlag;
pbf.PictureBoxShowFlagChanged += new
EventHandler(pbf_PictureBoxShowFlagChanged);
} catch { }
}
private void pbf_PictureBoxShowFlagChanged(object sender, EventArgs e) {
PictureBoxForm pbf = (PictureBoxForm)sender;
this.Visible = pbf.PictureBoxShowFlag;
}
}
0
... 아니면 그냥이 그들 모두 패널에 '를두고, 패널의 가시성을 변경합니다.
관련 문제
- 1. 구조체의 배열을 정렬하는 가장 빠른 방법 C++
- 2. JavaScript에서 문자열 배열을 필터링하는 가장 빠른 방법
- 3. PHP에서 배열을 반복하는 가장 빠른 방법
- 4. 파이썬에서 배열을 만드는 가장 빠른 방법
- 5. 문자열로 배열을 읽는 가장 빠른 방법
- 6. 일부 조건을 기반으로지도에서 배열을 반환하는 가장 빠르고 가장 빠른 방법
- 7. uitableview에서 배열을 표시하고 숨기는 방법
- 8. 파이썬에서 가장 빠른 반복 방법
- 9. 가장 빠른 방법
- 10. 가장 빠른 방법
- 11. 가장 빠른 방법
- 12. 가장 빠른 방법
- 13. 가장 빠른 방법 C#
- 14. 문자열 배열을 할당하는 가장 빠른 방법이 가능합니다.
- 15. 선 배열을 그리는 가장 빠른 방법은 무엇입니까?
- 16. 배열을 통해 순차적으로 이동하는 가장 빠른 알고리즘
- 17. 배열을 정렬하는 데 가장 빠른 종류가 무엇입니까?
- 18. 스칼라 배열을 Java 배열로 변환하는 가장 빠른 방법
- 19. 스프레드 시트 열에서 배열을 채우는 가장 빠른 방법
- 20. 검색을 위해 mysql에 배열을 나타내는 가장 빠른 방법
- 21. 부호있는 정수에서 정렬 순서 바이트 배열을 얻는 가장 빠른 방법
- 22. 배열을 복사하는 가장 빠른 방법 - 뭔가 의문의 여지가 있습니까?
- 23. PHP에서 수천 개의 배열을 고유하게 결합하는 가장 빠른 방법
- 24. Python : 2 차원 배열을 탐색하는 가장 빠른 방법
- 25. JS에서 가장 빠른 0의 수를 감지하는 가장 빠른 방법
- 26. PictureBoxes 및 Zorder [.NET]
- 27. 으로 반복 PictureBoxes
- 28. 가장 가까운 대상을 찾는 가장 빠른 방법
- 29. 가장 빠른 방법은
- 30. Boost MultiArray에서 요소에 액세스하는 가장 빠른 방법
이것은 WinForm 데스크탑 응용 프로그램입니까? –
@DourHighArch 네, 이것은 WinForms입니다. – RX14