VerticalSrollBar在vb.net中将值递增两次 公共类表单1 Dim val为整数=0 私有子表单1_Load(发送方作为对象,e作为事件参数)处理MyBase.Load VScrollBar1.最小值=0 VScrollBar1.最大值=100 VScrollBar1.Value=0 端接头 私有子VScrollBar1_Scroll(发送方作为对象,e作为ScrollEventArgs)处理VScrollBar1.Scroll 如果val

VerticalSrollBar在vb.net中将值递增两次 公共类表单1 Dim val为整数=0 私有子表单1_Load(发送方作为对象,e作为事件参数)处理MyBase.Load VScrollBar1.最小值=0 VScrollBar1.最大值=100 VScrollBar1.Value=0 端接头 私有子VScrollBar1_Scroll(发送方作为对象,e作为ScrollEventArgs)处理VScrollBar1.Scroll 如果val,vb.net,vertical-scrolling,Vb.net,Vertical Scrolling,这段代码还有一个问题,不管您是向上还是向下滚动,值都会增加。 我试图通过将Vscroll值放入textbox来调试它。请您帮我解决这个问题。您只是告诉它用val=val+10递增val。ScrollEventArgs可用于确定滚动条是向上滚动还是向下滚动 Public Class Form1 Dim val As Integer = 0 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.

这段代码还有一个问题,不管您是向上还是向下滚动,值都会增加。
我试图通过将Vscroll值放入textbox来调试它。请您帮我解决这个问题。

您只是告诉它用
val=val+10
递增
val
ScrollEventArgs
可用于确定滚动条是向上滚动还是向下滚动

Public Class Form1
    Dim val As Integer = 0
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        VScrollBar1.Minimum = 0
        VScrollBar1.Maximum = 100
        VScrollBar1.Value = 0
    End Sub
    Private Sub VScrollBar1_Scroll(sender As Object, e As ScrollEventArgs) Handles VScrollBar1.Scroll
        If val < 101 Then
            val = val + 10
            TextBox1.Text = val
            VScrollBar1.Value = val
            TextBox1.Font = New Font("Microsoft Sans Serif,", VScrollBar1.Value)
        Else
        End If
    End Sub
End Class
  • 您正在更改Scroll事件中的VScroll值,这毫无意义!您应该在此事件中读取滚动值或撤消新值。检查e.OldValue和e.NewValue属性

  • 请确保为VScroll的Minimum属性指定了一个有效值,该属性与字体的最小大小有关,且不等于0。至少1

  • 为了猜测你想做什么,我建议如下:

    Private Sub VScrollBar1_Scroll(sender As Object, e As ScrollEventArgs) Handles VScrollBar1.Scroll
        If e.Type = ScrollEventType.LargeIncrement OrElse e.Type = ScrollEventType.SmallIncrement Then
            val = val + 10
        Else
            'Decrement val or do nothing here. I've assumed that you are wanting to decrement val
    
            val = val - 10
        End If
    
        TextBox1.Text = val
        TextBox1.Font = New Font("Microsoft Sans Serif,", VScrollBar1.Value)
    End Sub
    
    改进版


    祝你好运。

    这段代码是正确的,我已经实现了我想要实现的目标。现在,这段代码正在平滑地增减文本框字体大小

    Private Sub VScrollBar1_Scroll(sender As Object, e As ScrollEventArgs) Handles VScrollBar1.Scroll
       Dim fs As FontStyle = Font.Style
    
       TextBox1.Font.Dispose()
    
       TextBox1.Font = New Font("Microsoft Sans Serif", e.NewValue, fs, GraphicsUnit.Point)
    End Sub
    

    dim style=TextBox1.Font.style TextBox1.Font.Dispose()TextBox1.Font=new字体(“Microsoft Sans Serif”,e.NewValue,style,GraphicsUnit.Point)
    。(我假设
    e.NewValue.ToString
    是一个复制/粘贴输入错误)。
    Private Sub VScrollBar1_Scroll(sender As Object, e As ScrollEventArgs) Handles VScrollBar1.Scroll
       Dim fs As FontStyle = Font.Style
    
       TextBox1.Font.Dispose()
    
       TextBox1.Font = New Font("Microsoft Sans Serif", e.NewValue, fs, GraphicsUnit.Point)
    End Sub
    
    Public Class Form1
        Private Sub VS_Scroll(sender As Object, e As ScrollEventArgs) Handles VS.Scroll
            txtbx.Font = New Font("Microsoft Sans Serif", VS.Value)
        End Sub
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            VS.SmallChange = 5
            VS.LargeChange = 20
            VS.Minimum = 10
            VS.Maximum = 100
        End Sub
    End Class