TTreeView 焦点,该如何处理
TTreeView 焦点
我想实现这样的 当我选中TTreeview焦点时,选中区域为蓝色背景;当失去焦点时为灰色区域背景;
TreeView1AdvancedCustomDrawItem事件中处理的:
在Exit事件中
在Enter事件中处理:
这样可以实现,但是当我最小化窗口时,在显示窗口的时候,整个TTreeview的节点都是灰色的填充背景;该如何去修改呢?
------解决方案--------------------
这样试试
我想实现这样的 当我选中TTreeview焦点时,选中区域为蓝色背景;当失去焦点时为灰色区域背景;
TreeView1AdvancedCustomDrawItem事件中处理的:
DefaultDraw = true;
PaintImages = false;
TRect r = Node->DisplayRect(true);
if (State.Contains(cdsFocused) || State.Contains(cdsSelected))
{
bFocused = false;
Sender->Canvas->Font->Color = clWhite;
Sender->Canvas->Brush->Color = clBlue;
Sender->Canvas->FillRect(r);
}
else if(bFocused)
{
Sender->Canvas->Font->Color = clBlack;
Sender->Canvas->Brush->Color = clGray;
Sender->Canvas->FillRect(r);
}
else
{
Sender->Canvas->Font->Color = clBlack;
Sender->Canvas->Brush->Color = clWindow;
Sender->Canvas->FillRect(r);
}
Sender->Canvas->DrawFocusRect(r);
Sender->Canvas->TextRect(r,r.Left + 2, r.Top + 1, Node->Text);
在Exit事件中
Focused = true;
在Enter事件中处理:
bFocused = false;
this->TreeView1->Invalidate();
这样可以实现,但是当我最小化窗口时,在显示窗口的时候,整个TTreeview的节点都是灰色的填充背景;该如何去修改呢?
------解决方案--------------------
这样试试
this->TreeView1->HideSelection = false;