怎样使TComboBox不响应鼠标滚轮事件?(50分)

  • 主题发起人 主题发起人 unreal
  • 开始时间 开始时间
U

unreal

Unregistered / Unconfirmed
GUEST, unregistred user!
TComboBox没有OnMouseWheel事件却在鼠标滚轮滚动的时候滚动内容,
实在是气人,请问该怎样才能使它不响应滚轮的滚动?
 
>>在鼠标滚轮滚动的时候滚动内容

怎么个流动法?

你是否按下了鼠标键,我怎么没这问题
 
就是在TcomboBox有焦点的时候滚动滚轮里面的内容就会变。
 
>>里面的内容就会变
??

是否鼠标移动时,鼠标下的内容变为蓝色

能描述得具体一点吗
 
你是用delphi5吗?我用它好像没有这样的问题啊。
 
这是正常的呀,我的也是这样,呵呵
 
我的意思是combobox里面有多个item,滚动滚轮的时候就会切换item,
怎样使combobox不响应这个事件?
 
怎么了?没人遇到这种情况?还是嫌分少?
我用的是双飞燕的4d+。
另外IE&Delphi的IeAddress控件,响应滚轮后就不能输入字符,为什么??
如能解决我再加150分。
 
在combobox1的onchange事件,
form1.activecontrol:=nil;
使它不被激活
另一个问题,未用过,应也可灵活处理吧
 
To unreal:
我用也的是双飞燕的4d+,没什么不妥啊。
 
很奇怪,我没这问题

是不是设了csDropDownList了(瞎说而已)
 
看样子还是要自己动手丰衣足食了,下面的构件虽然解决了问题
不过不够方便(没写过构件,这是我写的第一个构件,呵呵...),
哪位老兄把它写成一个Property,我还是送200分。

unit MouseWheelComboBox;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TMouseWheelComboBox = class(TComboBox)
private
Procedure MouseWheel(var Message : TMessage);Message WM_MOUSEWHEEL;
end;

procedure Register;

implementation

procedure TMouseWheelComboBox.MouseWheel(var Message : TMessage);
begin
end;

procedure Register;
begin
RegisterComponents('My', [TMouseWheelComboBox]);
end;

end.
 
这几句内容一定要写到构件中吗?
我想写到程序里也可以吧?该怎么写呢?
 
这种现象确实存在。
不过,你没有必要重新开发一个构件,重载TCombobox更好些。
在你使用TCombobox构件的Form的类声明之前加入:
TCombobox=class(StdCtrls.TCombobox)
Procedure MouseWheel(var Message : TMessage);Message WM_MOUSEWHEEL;
end;
实现部分如你所写。
这样,你不用在Delphi中加入新构件,自然也就省去了 Register 过程,而且程序的
其它任何部分都不用改动,兼容性更好。
 
谢了
真怪,为什么他们都没遇到这种情况呢?
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部