콤보는 콤보 내가 상태 열C# 콤보 박스 항목의 색상을 변경하는 방법은 무엇입니까? 의 WinForm에
하시기 바랍니다 조언을 콤보 상자 항목의 색상을 변경하려면 데이터 테이블 세 개의 열 (ID, 이름, 상태)
combobox.displaymember = "name";
combobox.valuemember = "id";
을 입력합니다.
콤보는 콤보 내가 상태 열C# 콤보 박스 항목의 색상을 변경하는 방법은 무엇입니까? 의 WinForm에
하시기 바랍니다 조언을 콤보 상자 항목의 색상을 변경하려면 데이터 테이블 세 개의 열 (ID, 이름, 상태)
combobox.displaymember = "name";
combobox.valuemember = "id";
을 입력합니다.
나는 이걸 지금까지 얻을 수 있었지만 하나의 버그가있다. 처음 몇 단계.
comboBox1_DrawItem
에 콤보 상자에 대한 DrawItem
이벤트 (아래의 방법)OwnerDrawFixed
또는 OwnerDrawVariable
Draw Mode
속성을 변경
comboBox1_DrawItem
을 구현하십시오. 내가 데이터 소스로 내 자신의 클래스의 IList의를 사용하는 ComboBoxValue.Status
private void comboBox1_DrawItem(object sender, DrawItemEventArgs e)
{
Brush brush;
var g = e.Graphics;
var rect = e.Bounds;
var n = "";
var f = new Font("Arial", 9, FontStyle.Regular);
switch (((ComboBoxValue)((ComboBox)sender).SelectedItem).Status)
{
case "one":
brush = Brushes.Red;
break;
case "two":
brush = Brushes.Green;
break;
default:
brush = Brushes.White;
break;
}
if (e.Index >= 0)
{
n = ((ComboBoxValue)((ComboBox)sender).SelectedItem).Name;
}
g.FillRectangle(brush, rect.X, rect.Y,rect.Width, rect.Height);
g.DrawString(n, f, Brushes.Black, rect.X, rect.Y);
}
에 브러시를 전환 할 것을 알 수 있습니다. 너와 달라질거야.
public class ComboBoxValues : System.Collections.ObjectModel.Collection<ComboBoxValue>
{
public ComboBoxValues()
{
this.Add(new ComboBoxValue
{
Name = "chad",
Id = 123,
Status = "one"
});
this.Add(new ComboBoxValue
{
Name = "different chad",
Id = 123,
Status = "two"
});
}
}
public class ComboBoxValue
{
public string Name { get; set; }
public int Id { get; set; }
public string Status { get; set; }
}
설정하십시오
comboBox1.DataSource = new ComboBoxValues();
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "Id";
버그 DataSource
, 당신은 어떤 이유로 색상은 그들에 마우스를 한 후에 변경하는 것이다 참조 곧 것 같은. 아마도 다른 사람이 내가이 문제에 착수하기 전에 오류를 깨닫게 될 것입니다. 행운을 빕니다!
누구든지 winforms (상태 열)에서이 문제에 대해 들었습니까? 나는 WPF에서만이 용어를 알고있다!? –
데이터 테이블의 상태 열 이름 – Gecew
여기를 참조하십시오. http://stackoverflow.com/questions/4667532/colour-individual-items-in-a-winforms-combobox 정적 위치에서 상태를 가져 오거나 검색해야합니다 콜백 어딘가에서 당신이 색깔에 결정을 내리고 싶다면 – ameer