c# - 如何为 TreeListView 中的特定单元格文本赋予颜色
问题描述
我在 Windows 应用程序中使用 TreeListView,我添加了一些数据来查看,现在我想根据某些条件为单元格文本赋予颜色,请帮助我实现这一点。
这是我试图显示数据的示例代码。
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;
解决方案
要更改单个单元格的格式,您需要将 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;
}
}
推荐阅读
- java - 如何在 SeekBar 上旋转 TextView?
- c#-4.0 - 如何获取群集磁盘的磁盘空间统计信息
- google-sheets - 运行总计自动插入每 9 行重置一次
- css - 手风琴组的标题样式(ngx-bootstrap)?
- javascript - 无法使用 react-native ble-manager 向 BLE 硬件写入或发送数据 [写入错误状态 3]
- javascript - 如何使用 Google recaptcha v2 和 PHP 提交带有 Boostrap 成功警报的联系表
- javascript - React App - Bable Polyfill 无法正常工作 IE11
- sql-server - 通过连接多个表来扁平化 SQL Server 中的数据
- c# - 我怎样才能使这个自定义全选功能起作用?
- php - 如何在 htaccess 中使用查询字符串重定向特定的 URL