2009-12-10 3 views
6

비활성 컨트롤 (TextBox 등)의 배경색으로 사용되는 색을 검색하는 방법은 Windows에 있습니까? 또는 더 나은 아직 국경 색깔도?비활성 컨트롤 배경색

이것은 Windows Forms 용이며 SystemColors에 적합한 것을 찾을 수 없었습니다. 그런 것은 없습니다

사례가있는 케이스입니다. 보유하고있는 텍스트가 충분히 크지 않을 수있는 텍스트 상자가 있고 사용할 수 없습니다. 이 기능을 사용하지 않으면 사용자가 스크롤하여 전체 텍스트를 볼 수 없으며 툴팁 for obvious reasons도 표시 할 수 없습니다.

그래서 이제는 TextBoxReadOnly 속성을 true으로 설정하면 툴팁을 표시하고 컨트롤을 스크롤 할 수있게되었습니다. 이제 클라이언트는 텍스트 상자가 비활성화 된 것처럼 보이게하려고합니다. ReadOnly 여전히 꽤 불쾌한 속성이므로 처럼 보일 수 있습니다. 그래서 거기에 적절한 배경색을 넣으면 대부분의 사용자를 속일 수있을 것이라고 생각했습니다. 해당 양식에 다른 비활성화 된 컨트롤이 있기 때문에 임의의 회색 값을 사용할 수 없으며 색상 차이가있을 수 있습니다. 그렇다면 장애가있는 컨트롤이 어떻게 렌더링되는지 알아낼 수있는 방법이 있습니까? 배경 색상과 테두리 색상 또는 적어도 전적으로 실제로는 충분해야하지만 나는 차라리 추측하지 않을 것입니다. 문제의 플랫폼은 테마가 있거나없는 XP 및 Vista 일 가능성이 큽니다.

수신자 부담 : 무시. 문제는 바보 같았습니다. 이전에 발견 했어야했던 오류를 대신해서 말입니다. 하나의 TextBox가 회색 배경을 따르지 않는 것은 조금 이상합니다.

+1

내가 오히려 (SystemColors.Control''에서와 같이) "회색"와 텍스트 상자는 편집 할 수 없습니다 것을 확립하고 있다고 생각, 그래서 정말이 문제 고려하지 않을 것입니다. 그러나 고객이 그렇게 말하면, 고객은 그렇게 말합니다. –

+0

글쎄, 난 * * 회색 정확히 모르겠다. 그들이 여전히'ReadOnly = true'로 컨트롤에 집중할 수 있다는 사실은 아마 눈에 띄지 않을 것입니다. Thankfully :-) – Joey

+0

나는 똑같은 말을하려고했다. 읽기 전용 텍스트 상자는 비활성화 된 텍스트 상자와 동일한 배경색을 가지므로 사용자가 나에게 묻는다면 읽기 전용으로 보입니다. – bernhof

답변

23

비활성화하면 텍스트 상자의 배경색은 SystemColors.Control이고 전경색은 SystemColors.GrayText입니다.

3

이 시도 :

 treeView1.EnabledChanged += (s, o) => 
      { 
       treeView1.BackColor = treeView1.Enabled ? Color.White : SystemColors.Control; 
      };