使Form響應滾輪事件

2022-08-05 13:42:11 字數 1347 閱讀 9532

這裡只舉個縱軸的例子,利用delphi的vcl控制元件的原有**還是比較方便的,**如下:

mousewheel

procedure

tfrmmain.formmousewheel(sender: tobject; shift: tshiftstate;

wheeldelta: integer; mousepos: tpoint; 

varhandled: boolean);

varlpos,lheight :integer;

begin

//確保form的 autoscroll :

=false; scaled :

=true;

//要在窗體建立或者內容載入的時候設定好 vertscrollbar.range visible

//根據實際的內容長度來設定vertscrollbar.range

lheight :

=vertscrollbar.range 

-clientheight;

//注意form的 clientheight和height的區別

iflheight 

<=

0then

exit;

if wheeldelta 

>

0then

lpos :

=vertscrollbar.position 

-vertscrollbar.increment

else

lpos :

=vertscrollbar.position 

+vertscrollbar.increment;

iflpos 

>

lheight 

then

lpos :

=lheight  ;

iflpos 

<

0then

lpos :=0

;ifvertscrollbar.position 

-lpos  

<>

0then

begin

//scrollby(

0,self.vertscrollbar.position

-lpos);

//由於設定position的時候已經使form滾動了,所以不用手動滾動

vertscrollbar.position :

=lpos;

end;

handled :

=true; 

//遮蔽form裡面的控制元件滾動事件

end;

當然也可以自己擷取mousewheel訊息,這樣就不單單隻有tscrollingwincontrol類上使用滾輪事件了

怪異的Windows Form事件

因為工作忙,很久沒有來了,呵呵。 在ms的webmatrix中,對form增加了個新的事件 initactivated,檢測這個 ,發現只是...

怎樣使我們的使用者不再牴觸填寫Form表單?

原文出處 大多數人並不喜歡填表,我想這應該是不爭的事實,但為什麼呢? 因為填表單時你就像考試一樣感到緊張和焦慮,對填寫的內容謹小慎微,慎之又...