Как задать цвет для указанного c текста ячейки в TreeListView - PullRequest
0 голосов
/ 31 января 2020

Я использую TreeListView в приложении windows, я добавил некоторые данные для просмотра, теперь я хочу дать цвет для текста ячейки на основе некоторых условий, пожалуйста, помогите мне достичь этого.

Это это пример кода, который я пытался отобразить данные.

    var parent1 = new Node("PARENT1", "-", "-" );
parent1.Children.Add(new Node("CHILD_1_1", "A", "X"));
parent1.Children.Add(new Node("CHILD_1_2", "A", "Y"));
parent1.Children.Add(new Node("CHILD_1_3", "A", "Z"));

    //here I need to give color for Third column value whose value is 'Y'

var parent2 = new Node("PARENT2", "-", "-" );
parent2.Children.Add(new Node("CHILD_2_1", "B", "W"));
parent2.Children.Add(new Node("CHILD_2_2", "B", "Z"));
parent2.Children.Add(new Node("CHILD_2_3", "B", "J"));

var parent3 = new Node("PARENT3", "-", "-");
parent3.Children.Add(new Node("CHILD_3_1", "C", "R"));
parent3.Children.Add(new Node("CHILD_3_2", "C", "T"));
data = new List<Node> { parent1, parent2, parent3 };
treeListView.Roots = data; 

1 Ответ

0 голосов
/ 31 января 2020

Чтобы изменить форматирование отдельной ячейки, необходимо установить для UseCellFormatEvents значение true, а затем прослушивать события FormatCell. Чтобы отобразить только кредитный баланс красным цветом, вы можете сделать что-то вроде этого:

private void olv1_FormatCell(object sender, FormatCellEventArgs e) {
    if (e.ColumnIndex == this.creditBalanceColumn.Index) {
        Customer customer = (Customer)e.Model;
        if (customer.Credit < 0)
            e.SubItem.ForeColor = Color.Red;
    }
}

Источник

...