Slider 应用实例 1:成比例地调节 Graph 控件的大小

Slider 的一个用途是改变窗体中的 PictureBox 控件的大小,同时保持其比例。

在下面的代码中使用了如下对象:

通过 Slider 控件改变 PictureBox 控件的大小

  1. 为 Height 和 Width 属性创建两个全局变量。

  2. 使用 Form 的 Load 事件以设置全局变量和 Max 属性。

  3. 通过 Scroll 事件改变 PictureBox 的高度和宽度。

为 Height 和 Width 创建两个全局变量

保持比例的一个简单的公式是:

picPhoto.Height = sldResize.Value * _
OriginalHeight / 100
picPhoto.Width = sldResize.Value * OriginalWidth / 100

该公式依赖于两个常数值:即 PictureBox 控件最初的高度和宽度。这两个值应在装入窗体时设置,并且应为全局变量,如下所示:

Option Explicit
Private gHeight As Long
Private gWidth As Long

使用窗体的 Load 事件设置全局变量和 Max 属性

要设置全局变量的值,需要利用 Form 对象的 Load 事件,使用下面的代码只需要计算 OriginalHeight/100OriginalWidth/100 各一次,并将结果保存在全局变量中,这样能使代码的效率更高:

gHeight = picPhoto.Height / 100
gWidth = picPhoto.Width / 100

Load 事件还可以用于设置 Slider 控件的 Max 属性。Max 属性指定了 Slider 能够调节到的最大值。为使计算简便,将 Max 属性设为 100:

sldResize.Max = 100

全部全部代码如下。它在 Form 对象的 Load 事件中设置了全局变量和 Max 属性:

Private Sub Form_Load()
   gHeight = picPhoto.Height/100
   gWidth = picPhoto.Width/100
   sldResize.Max = 100
End Sub

通过 Scroll 事件改变 PictureBox 的高度和宽度

Slider 控件具有 Scroll 事件,每当移动 Slider 的滑块时就会产生该事件。利用该事件可以连续地处理 Slider 的 Value 属性。在这个应用实例中,当滑块移动时,PictureBox 的大小会被动态地改变(如果不希望在动态改变控件上浪费时间,则可以用 Click 事件。在滑块被释放后,用 Click 事件更新控件的大小)。下面的代码给出了 Scroll 事件中用到的公式:

Private Sub sldResize_Scroll()
   picPhoto.Height = sldResize.Value * gHeight
   picPhoto.Width = sldResize.Value * gWidth
End Sub

全部代码

全部代码如下所示:

Private gHeight As Long
Private gWidth As Long

Private Sub Form_Load()
   gHeight = picPhoto.Height / 100
   gWidth = picPhoto.Width / 100
   sldResize.Max = 100
End Sub

Private Sub sldResize_Scroll()
   picPhoto.Height = sldResize.Value * gHeight
   picPhoto.Width = sldResize.Value * gWidth
End Sub