[제품종류] IEC1000
[개발환경] Visual Studio 2008 C#
=============== 질 문 ===============안녕하세요.
smartListBox 사용중에 문제가 있어 문의드립니다.
판정값에 따라 smartListBox 글씨색을 변경해야 할 필요성이 있어
열별로 smartListBox를 하나씩 추가해서 사용중인데요.
클릭을 못하게 하고싶은데, 무조건 클릭되어 색반전이 되더라구요..
이거 막으려고 Enable을 false하면 그냥 색자체가 없어지고,
그렇다고 클릭 이벤트에 선택해제(-1) 값을 주니 프로그램이 멈추는 증상이 발생합니다.
이 부분 빠르게 수정이 가능한지 궁금합니다.
답변 기다리겠습니다.
=============== 답 변 ===============
안녕하세요 HNS입니다.
SelectedIndexChanged 이벤트에서 선택 해제(-1) 값을 설정하는 방식은 로직 구조상 적용이 어려울 것으로 보입니다. 말씀해주신 프로그램이 멈추는 증상은 수정하도록 하겠습니다.
다만, .NET 기본 ListBox에서도 SelectedIndex에 -1을 설정할 경우 프로그램이 종료되지는 않지만 선택 표시가 그대로 남는 문제가 있습니다.
SmartX를 수정 하더라도 동일한 현상이 발생할 것으로 보입니다.
따라서 해당 문제의 경우 아래와 같은 방법을 사용하시는 것을 권장드립니다.
[해결 방법]
1. SelectFilled 속성을 true로 설정한 후, SelectColor를 SmartListBox의 Background Color와 동일한 색상으로 지정합니다.
2. SelectedIndexChanged 이벤트에서 선택된 Item의 Color 값을 확인한 뒤, SelectTextColor를 해당 색상으로 변경합니다.
SelectedIndexChanged 이벤트에 아래 코드를 참고하여 적용하여 보시기 바랍니다.
private void smartListBox_SelectedIndexChanged(object sender, EventArgs e)
{
SmartX.SmartListBox lsb = (SmartX.SmartListBox)(sender);
if (lsb.GetItemColumnText(lsb.SelectItemIndex,1) == "1")
{
lsb.SelectTextColor = Color.Red;
}
else if (lsb.GetItemColumnText(lsb.SelectItemIndex, 1) == "2")
{
lsb.SelectTextColor = Color.Green;
}
}




