combobox1.DroppedDown := true; //这里弹出list后,mouse就不见了,无法复原 (22分)

  • 主题发起人 淡淡的笑
  • 开始时间

淡淡的笑

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.ComboBox1KeyUp(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
if key=13 then
begin
combobox1.DroppedDown := true;
//这里弹出list后,mouse就不见了,无法复原.
end;
end;

PS:在combobox1.DroppedDown:=true;之前我还要处理一些代码,本意是在combobox中输入
一些字符串,按回车后,把combobox中的所有项过滤,只剩下包含有这个字串符的项.过滤完
毕后,自动弹出下拉列表.功能我做好了,就是当回车后,,看不到mouse的指针..
如何解决一??
 
update.刷新,重画,全部 无效..
 
procedure TForm1.ComboBox1KeyUp(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin

if key=13 then
begin
SpeedButton1Click(Sender);
combobox1.DroppedDown := true;
//这里弹出list后,mouse就不见了,无法复原.
end;

end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
var
i:integer;
begin
i:=1;
end;
在窗口空白处点一下就可以了,你在SpeedButton1Click中做了什么。
 
去掉 speedbutton1click也是一样..
空白处点了list那个就没掉了-_- 那我就没必要combobox1.DroppedDown := true;
也就达不到我的目的
估计是在combobox当中输入数据时(这时mouse会自动消失,本属正常)列出list后,mouse
不能正常恢复引起的..不知道要怎么处理.. -_-
 
这和你按下 13 时鼠标的指向有关,如果按下 13 时鼠标指在组合
框内部,显示的是处于文字编辑的鼠标,如果这时指向Form 空白
处,那么它还是箭头。
主要原因是,DroppedDown 后鼠标维持之前的状态。
你可试一下 Alt+向下键,也是这个效果。
但不影响选择。
procedure TForm1.ComboBox1KeyUp(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
if key=13 then
begin
combobox1.DroppedDown := true;
combobox1.Cursor :=crArrow;
//改不了。
end;
end;
 
to jsxjd:
thx.原因我自己也知道.求的是解决方法.
你的那段combobox1.cursor:=crarrow;无效.
我有一个很笨的解决方法,,就是在combobox1.DroppedDown := true;之前 ,把mouse定位于combobox1之外
不过这个办法太笨了 -_- 所以请求比较好的解决方案 :) 再次谢谢
 
Autodropdown设为true,
你的语句全部不要了
 
combobox没有Autodropdown这个属性. d6? d5没有. 偶从没用过d6,,光盘倒是有几张 :(
 
combobox1.DroppedDown:=true;
写在combobox的keypress事件里,不要写条件,就这一句
 
条件是要的..怎么又不要条件? :O 不写条件,,我一边输入,,它就一边弹? :O
何况这样也解决不了问题,,mouse还是看不见.
 
不会一直弹的,将这句话放在
KeyPress
事件里,输入的时候,下拉菜单打开,鼠标指针不会消失!!相信我!
 
直接定位在组合的下拉列表第一行的位置不就可以了,而且比较理想。
 
这是不是你想要的结果??
if key=13 then
begin
combobox1.DroppedDown := true;
//这里弹出list后,mouse就不见了,无法复原.
Form1.SetFocus ;
end;
 
to x_coffee:
不行... 我输入一个字符,就弹出,但在combobox1.DroppedDown:=true;之前我还要处理一些
代码,本意是在combobox中输入一些字符串,按回车后,把combobox中的所有项过滤,只剩下
包含有这个字串符的项.过滤完毕后,自动弹出下拉列表.功能我做好了,就是当回车后,,看
不到mouse的指针..
to AvidMouse:
也不行. form1.setfocus还是看不到mouse,只有当点击选择了combobox的某一个列项后,mouse 才会又显示出来
以上几位兄弟,combobox的style为csDropDown;
 
随意放置一个EDIT控件
procedure TForm1.ComboBox1KeyUp(Sender: TObject;
var Key: Word;
Shift: TShiftState);
if key=13 then
begin
edit1.SetFocus;
combobox1.DroppedDown:=true;
end
应该没有问题
 
这个办法也很笨(我上面也谈过把mouse定位于combbox之外) -_-
没有可以处理那个mouse指针的api什么的? :(
sigh,,送分了..开的分很少,见谅.
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
769
import
I
顶部