2012-05-13 2 views
33

버튼 배경색에 대한 다양한 옵션을 실험하고 있었으며 모양 카테고리에서 BackColor 속성을 변경했습니다. 나는 다시는 Control이다 기본적으로 무엇인지에 변경,하지만 여전히 다른 버튼에서 서로 다른 모양 : 내가 프로젝트를 빌드 및 Visual Studio를 다시 시작하려고했습니다기본 단추 BackColor로 재설정하는 방법?

Screenshot of buttons

하지만 도움이되지 않았다 .

다른 버튼을 드래그하여 코드를 붙여 넣을 수 있다는 것을 알고 있지만 무엇이 가장 먼저 발생시키고 어떻게 제대로 고칠 수 있습니까?

+0

다음 단지로 이동 [색상]을 재산 (디자인 모드에서) 마우스 오른쪽 클릭 : –

답변

54

속성은 기본적으로 주변 컨트롤 속성이므로 부모 컨트롤에서 값을 상속받습니다. 을 명시 적으로으로 설정하면 주변 특성을 무시하고 해당 특성 값을 사용하도록합니다.

표준 Windows 단추 컨트롤은 사용자 지정 색을 지원하지 않으므로 WinForms는 실제로 컨트롤을 사용자 지정하여 디자이너가 색을 재정의하도록 허용합니다. 그렇게하면 추한 초록색 또는 빨간색 버튼을 원한다면 그렇게 할 수 있습니다.

버튼 컨트롤의 사용자 정의 배경색을 3D 컨트롤의 배경색으로 설정했지만 실제로는 자주색 일 수 있습니다. WinForms에서 사용자 정의 컨트롤을 그리고 지정한 색상으로 배경을 칠합니다. 이것이 바로 "평평한"모양을 나타내는 것입니다. 기본 그라디언트 효과를 사용하는 대신 배경색이 단일 사용자 정의 색상으로 그려집니다. 실제로 버튼이 이 평면 3D 컨트롤 색상으로 그려진 이었기 때문에 Windows Classic (pre-Aero) 테마에서는 눈에 띄지 않았습니다. 그러나 Aero는 그라디언트와 다른 "뜨거운"효과를 추가하여 아픈 엄지 손가락처럼 튀어 나오게합니다.

설정 한 값을 지우고 속성의 주변 특성을 복원하려면 속성 창에서 속성을 마우스 오른쪽 단추로 클릭하고 "재설정"을 선택하십시오. 또한 default(Color)에 속성을 설정하여 코드를 통해 수행 할 수 있습니다 BackColor 속성은 사용자를 지원하도록 변경 될 때마다

myButton.BackColor = default(Color); 

당신은 자동으로 false로 설정됩니다 true에 다시 UseVisualStyleBackColor 속성을 설정해야합니다 배경색.

또는 WinForms에서 이와 같은 사용자 지정 속성을 무시하고 Windows에 단추 컨트롤 그리기를 요청할 수 있습니다. FlatStyle 속성을 FlatStyle.System으로 설정하면됩니다.

다시 디자이너 나 코드를 통해이 작업을 수행 할 수 있습니다. 이렇게하면 배경색과 같은 어리석은 것들을 바꿔 막대한 추악한 컨트롤을 만드는 것을 막을 수있을뿐 아니라, 호버에 미묘한 Aero 페이드 효과를 포함하여 WinForms 버튼 컨트롤의 기본 동작을 WinForms 응용 프로그램으로 복원 할 수 있습니다.

이것이 왜 기본값이 아니 었는지 알 수 없습니다. 추악하고 비표준 컨트롤을 얻으려면 특별한 요청을해야합니다. 그것은 자동적으로 일어나서는 안됩니다. VB6 프로그래머는 몇 년 동안 모든 종류의 추악한 컨트롤을 만들 수 있었던 것은 양보라고 생각할 수 있습니다.

+1

* default (Color) *의 해당 VB.NET 버전은 무엇입니까? –

+1

@PeterMortensen :'New Color()'가 나를 위해 일했습니다. – Neolisk

+0

FlatStyle은 좋습니다. – Vlad

10

기본 백 색을 변경하면 UseVisualStyleBackColor 속성을 false로 바꿉니다.

그걸 다시 true로 변경하면 설정해야합니다!

0

질문 제목을 참조하여 "기본 단추 BackColor로 재설정하는 방법"을 참조하십시오. ,

ButtonFoo.visible = False 

ButtonFoo 말, 다른 버튼을 만들고 보이지 않는로 설정

당신은 (그것이 기본 색상이기 때문에) 색상을 얻기 위해이 버튼을 사용할 수 있습니다, 나는에 의해 내 문제를 해결 예를 들어, 다른 버튼 색상을 재설정하려면

ButtonChangedColor.BackColor = ButtonFoo.BackColor 

여기 있습니다. 색상이 기본값으로 복원 됨 :

7

버튼의 기본 배경색을 복원하려면; 나를 위해 일한 무엇

Button1.BackColor = SystemColors.ButtonFace 
Button1.UseVisualStyleBackColor = True 
3

다음 FromKnowColor

CommandButton1.BackColor = vbButtonFace 
2
Button1.BackColor = Color.FromKnownColor(KnownColor.Control) 

사용하면 시스템 색에 액세스 할 수 있습니다. 정말 간단합니다.

디자인 모드에서 변경 한 경우
Button1.BackColor = SystemColors.ButtonFace; 
Button1.ForeColor = default(Color); 
Button1.UseVisualStyleBackColor = true; 
0

기본 배경 및 전경 버튼 사용에 복원합니다. 기본값으로 돌아갈 수있는 메뉴가 나타납니다.
관련 문제