C# 포스팅은 공부하면서 알아가는 것들을 정리하면서 썼습니다.
Winform으로 하나씩 테스트하면서 정리한 것을 계속해서 포스팅할 예정입니다.
내용의 궁금한 점이나 잘못된 점이 있으면 댓글로 남겨주세요!
GOAL
- Winform의 Main Form에서 버튼을 눌렀을 때 해당 Form을 Main Form에 붙여서 띄우기
Form에 Form 붙이기 위한 작업 _ 1
- 테스트를 위한 버튼을 만들고 폼을 일반적으로 띄우는 형식입니다.
- From.show()를 Btn_click 이벤트에 넣어서 사용했습니다. 하지만 이렇게 하면 다른 버튼을 누르는데 번거롭게 되며
창을 옮기는데도 불편함이 생깁니다.
- 먼저 FormBorderStyle을 None으로 하여 상태 표시줄을 사라지게 했습니다.
- ControlBox 속성을 False로 만들어 최소, 최대, 닫기 버튼을 사라지게 하였습니다.
Form에 Form 붙이기 위한 작업 _ 2
- 위 작업에서 붙일 Form의 BorderStyle과 ControlBox를 제거하였지만 붙인 것처럼 보일 뿐
아래 사진처럼 실제로 붙은 상태는 아니게 됩니다.
- C#에서 Form도 객체를 만들고 상속받으므로 다른 컨트롤 안에 포함시킬 수 있습니다. 이 말은 main form 안에 포함시킬 수 있다는 뜻입니다.
- Form의 속성 중 TopLevel이라는 속성이 있습니다. TopLevel을 True로 설정하면 부모 창이 없는 최상위 창으로 만든다는 의미이고 통상 메인 창으로 사용합니다. default는 True이며 저는 붙이기 위해 false로 지정했습니다.
private void FrmMAIN_Load(object sender, EventArgs e)
{
frmpGridINI.TopLevel = false;
this.Controls.Add(frmpGridINI);
frmpGridINI.StartPosition = FormStartPosition.Manual;
frmpGridINI.Location = new Point(15, 60);
}
- 코드를 보시면 pGridINI.TopLevel = fasle로 만들고 this.Controls.Add() 즉, 메인의 컨트롤에 자식 폼을 추가함으로 폼을 붙일 수 있게 됩니다. 그리고 자식 폼의 startPosition을 manual로 만들어 원하는 곳에서 시작되게 할 수 있습니다.
결과)
- 만들 결과를 보시면 main에 자식 폼이 붙어서 데이터를 주고받는 것을 볼 수 있습니다.
틀린 점이나 질문이 있으시면 댓글로 남겨주세요!
'C# > Winform' 카테고리의 다른 글
C# Winform DataGridView Header Cell 높이 변경 (0) | 2023.12.20 |
---|---|
C# Winform DataGridView Column 높이 변경 (0) | 2023.12.19 |
C# Winform DataGridView 이해 (0) | 2023.12.19 |
C# Winform 이미지 히스토그램 구현 (2) | 2023.11.29 |
[C# Winform] PropertyGrid 데이터를 INI 파일로 저장하기 (0) | 2021.12.13 |