C#에서 MDI 서식의 BACKGROUND 색을 어떻게 바꿀 수 있습니까?MDI 양식의 배경 변경
배경색 속성을 사용하여 변경했지만 색상이 변경되지 않았습니다.
이 작업을 수행하려면 어떻게해야합니까?
C#에서 MDI 서식의 BACKGROUND 색을 어떻게 바꿀 수 있습니까?MDI 양식의 배경 변경
배경색 속성을 사용하여 변경했지만 색상이 변경되지 않았습니다.
이 작업을 수행하려면 어떻게해야합니까?
MDI 컨트롤의 실제 BackGround 색은 Windows 현재 테마의 색을 기반으로합니다. 실제로 WinForm 내부에서 MdiClient 컨트롤의 배경을 설정해야합니다.
// #1
foreach (Control control in this.Controls)
{
// #2
MdiClient client = control as MdiClient;
if (!(client == null))
{
// #3
client.BackColor = GetYourColour();
// 4#
break;
}
}
편집 - 추가 코멘트 :
우리는 MdiParent 양식의 컨트롤을 반복 당신이 MdiParent 할 양식을 설정할 때 추가 가져옵니다 MdiClient 컨트롤을 찾을 필요가있다. Foreach는 컬렉션을 통한 형식의 단순한 반복입니다.
폼 내에서 MdiClient 컨트롤을 찾으려면 'as'키워드를 사용하여 루프 내에서 현재 컨트롤을 캐스팅해야합니다. 'as'키워드를 사용한다는 것은 캐스트가 유효하지 않으면 설정된 변수가 널 (NULL)이됨을 의미합니다. 따라서 '클라이언트'가 null인지 확인합니다. 이 경우 루프의 현재 컨트롤이 MdiClient 컨트롤이 아닙니다. 변수 'client'가 null이 아니라면 우리가 보유하고있는 컨트롤은 MdiClient이며 배경색을 설정할 수 있습니다.
원하는 색으로 백 색을 설정하십시오. 그냥 Color.White, Color.Blue, Colour.FromArgb (등) ...
과 같이 원하는 색상으로 "GetYourColour()"를 대체하십시오. MdiClient가 하나만 있으므로 루프를 계속 진행할 필요가 없습니다 처리 시간 낭비 일뿐입니다. 따라서 우리는 'break'를 호출하여 루프를 종료합니다.
다른 설명이 필요하면 알려주세요.
MDI 형식의로드 방법에이 내용을 씁니다.
Controls.OfType<MdiClient>().FirstOrDefault().BackColor = Color.Purple;
답장을 보내 주셔서 감사합니다. 코딩의 도움으로 이제 MDI 형식의 배경색을 변경할 수있게되었습니다. 내가 필요로하는 한 가지 더 도움이된다. 가능한 한 C#을 처음 접했기 때문에 가능한 한 코딩을 설명 할 수 있을까? 감사합니다. – sheetal
예, 코드에 몇 가지 설명을 추가하겠습니다. – GenericTypeTea
대단히 감사합니다 !! 아주 좋은 설명 !! 덕분에 많은 – sheetal