关于Api的问题(100分)

  • 主题发起人 主题发起人 菩提
  • 开始时间 开始时间

菩提

Unregistered / Unconfirmed
GUEST, unregistred user!
<br>我自己写了一个Onkeydown事件,然后把一个Edit控件的OnKeydown事件指向这个自己写的<br>OnKeydown事件。<br><br>在这个事件中,我要把一个Listview中的某一个记录进行聚集,并高亮度显示,代码如下:<br>begin<br>&nbsp; if key=vk_down then begin<br>&nbsp; &nbsp; &nbsp;listview1.items.Item.Selected:=true;<br>&nbsp; &nbsp; &nbsp;listview1.items.Item.Focused:=true;<br>&nbsp; &nbsp; &nbsp;listview1.items.Item.MakeVisible(true);<br>&nbsp; &nbsp; &nbsp;sendmessage(listview1.Handle, WM_SETFOCUS, 0, 0);<br>&nbsp; end;<br>end;<br><br>当当前窗口的输入焦点在Edit控件的时候,我点击键盘上的向下键,也就是Key=vk_down的<br>情况,此时我不知道当前窗口的输入焦点是在那个控件上,比如说:还是在Edit上,或是转<br>移到Listview1上了?<br><br>当我用Listview.focused 和 Edit1.focused 这两个语句来判断时,此时这个Focused属性<br>都是不可利用的。<br>我怎么判断当前的窗口焦点在那个控件上?<br><br>我对Api信息不是很熟,希望各位朋友可以提供帮助!
 
见 Form 的 ActiveControl 属性
 
用listview1.SetFocus;
 
如果你的Form的Name是frmMain则判断代码如下:<br>for i := 0 to frmMain.ComponentCount-1 do<br>begin<br>&nbsp; if frmMain.Components = Activecontrol then <br>&nbsp; &nbsp; Caption := frmMain.Components.Name;//my check result<br>end;
 
同意Babylon5的观点。利用窗口的ActiveControl属性。<br>例如: 直接可以用 Self.ActiveControl.Name取得当前控件的名称。
 
谢谢你们的帮助!
 
后退
顶部