【发布时间】:2013-02-11 23:00:28
【问题描述】:
我正在尝试更改TreeView 的默认highlight color。我会期待像DefaultSelectionBackground 这样的东西,就像我在DataGridView 中所做的那样,但我找不到任何东西。
这只是TreeView 的另一个限制,还是我遗漏了什么?
【问题讨论】:
我正在尝试更改TreeView 的默认highlight color。我会期待像DefaultSelectionBackground 这样的东西,就像我在DataGridView 中所做的那样,但我找不到任何东西。
这只是TreeView 的另一个限制,还是我遗漏了什么?
【问题讨论】:
所有标准的 Windows 控件,例如 TreeView,都会注意用户选择的主题颜色。这是一种资产,Windows 是可识别和熟悉的,即使用户以前从未使用过程序。默认的突出显示颜色是蓝底白字,这是每个控件的标准颜色。当然,用户可以自定义,TreeView 会自动效仿。
如果您真的愿意,您可以将自己的颜色偏好强加给用户。将 DrawMode 属性设置为 OwnerDrawText 并实现 DrawNode 事件来绘制自己。在有关 DrawNode 的 MSDN 库文章中有一个很好的示例。
【讨论】:
<asp:TreeView runat="server"
ID="tvMyTreeView"
OnTreeNodeDataBound="tvMyTreeView_TreeNodeDataBound"/>
protected void tvMyTreeView_TreeNodeDataBound(object aSender, TreeNodeEventArgs anEvent)
{
DataRowView dr = (DataRowView)anEvent.Node.DataItem;
anEvent.Node.Style.Add("color", dr["COLOR"].ToString());
}
【讨论】: