在窗体上放上ApplicationEvents1控件,在其OnMessage事件中添加如下代码:
AnsiString direct;//方向标志
int i=0; //节点位置
void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg,
bool &Handled)
{
if(!TreeView1->Focused() && Msg.message == 257)//设置焦点
{
TreeView1->SetFocus();
TreeView1->Selected = TreeView1->Items->Item[0];
}
if(Msg.message == WM_KEYUP && Msg.wParam == 38)//按下上箭头键
{
if(direct == "向下")
{
--i;
}
direct = "向上";
--i;
if(i<=-1)
{
i=0;
}
TreeView1->Selected = TreeView1->Items->Item[i];
}
if( Msg.message == WM_KEYUP && Msg.wParam == 40)//按下下箭头键
{
if(direct == "向上")++i;
if(i >= TreeView1->Items->Count)
{
i=TreeView1->Items->Count-1;
}
direct = "向下";
TreeView1->Selected = TreeView1->Items->Item[i];
i++;
}
}