Slider 的一个用途是改变窗体中的 PictureBox 控件的大小,同时保持其比例。
在下面的代码中使用了如下对象:
通过 Slider 控件改变 PictureBox 控件的大小
保持比例的一个简单的公式是:
picPhoto.Height = sldResize.Value * _
OriginalHeight / 100
picPhoto.Width = sldResize.Value * OriginalWidth / 100
该公式依赖于两个常数值:即 PictureBox 控件最初的高度和宽度。这两个值应在装入窗体时设置,并且应为全局变量,如下所示:
Option Explicit
Private gHeight As Long
Private gWidth As Long
要设置全局变量的值,需要利用 Form 对象的 Load 事件,使用下面的代码只需要计算 OriginalHeight/100
和 OriginalWidth/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
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