如何靠发送消息传递焦点,发送成功后杀掉此消息,以阻止程序去执行别的事件?(50分)

  • 主题发起人 主题发起人 marco_hsu
  • 开始时间 开始时间
M

marco_hsu

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在再GRID(第三方GRID)中嵌入了一棵树,想在制定的CELL中输入值时显示这棵树,如果他在这个CELL中按向下键(VK_DOWN)我就将焦点转移到树上,可转移完后,他又执行了很多其他事件,现在我想阻止他执行这些,该怎么办<br>&nbsp; if (Key = VK_DOWN) and (Treeview1.Visble) and (Acol = 1) then<br>&nbsp; begin<br>&nbsp; &nbsp; &nbsp;Treeview1.SetFocus;//刚刚转移完<br>&nbsp; &nbsp; &nbsp;Exit; &nbsp;<br>&nbsp; &nbsp; &nbsp;//他又去执行了很多别的事件,使得焦点又移开了,我想让他不要去执行这些操作!<br>&nbsp; end;<br>
 
if (Key = VK_DOWN) and (Treeview1.Visble) &nbsp;then<br>begin<br>&nbsp; //做转移<br>end;
 
我想让他只执行我那里面的操作,不再执行别的事件,可能只有用消息了?
 
&nbsp;if (Key = VK_DOWN) and (Treeview1.Visble) and (Acol = 1) then<br>&nbsp; begin<br>&nbsp; &nbsp; &nbsp;Treeview1.SetFocus;<br>&nbsp; &nbsp; &nbsp;Key := #0 &nbsp;//加上这个试一试<br>&nbsp; &nbsp; &nbsp;Exit; &nbsp;<br>&nbsp; end;<br>
 
不用 WM_Keyxxxx 消息, 用 Form的 OnKeyPressed,<br>(要将Form的 KeyPreview 设为True),然后在Form的<br>OnKeyPressed写:<br>----------------------------------------------------------------<br>&nbsp; if (Key = #13) and (Treeview1.Visble) and (Acol = 1) then<br>&nbsp; begin<br>&nbsp; &nbsp; &nbsp;Treeview1.SetFocus;<br>&nbsp; &nbsp; &nbsp;Key := #0 <br>&nbsp; end;<br>----------------------------------------------------------------
 
jackchin 谢谢老大,由于我是在KEYDOWN中写的事件,所以 KEY := 0 就可以了
 
后退
顶部