Vb.net 如何使按钮在大小上向上移动(通过垂直向上移动),而不是在总大小上移动?

Vb.net 如何使按钮在大小上向上移动(通过垂直向上移动),而不是在总大小上移动?,vb.net,Vb.net,我与我在Visual Basic NET中使用的按钮有轻微冲突 Private Sub FlatButton1_MouseHover(sender As Object, e As EventArgs) Handles FlatButton1.MouseHover Button_Height.Enabled = True Button_Height.Start() End Sub 我的第一个代码示例是我的按钮\u高度\u勾选,它控制更改按钮的高度: Dim ChangeHeigh

我与我在Visual Basic NET中使用的按钮有轻微冲突

Private Sub FlatButton1_MouseHover(sender As Object, e As EventArgs) Handles FlatButton1.MouseHover
    Button_Height.Enabled = True
    Button_Height.Start()
End Sub
我的第一个代码示例是我的按钮\u高度\u勾选,它控制更改按钮的高度:

Dim ChangeHeight As Boolean = False

Private Sub Button_Height_Tick(sender As Object, e As EventArgs) Handles Button_Height.Tick
    If Not ChangeHeight Then
        Do Until FlatButton1.Height = 63
            FlatButton1.Height += 1
            System.Threading.Thread.Sleep(1)
        Loop
        ChangeHeight = True
    Else

    End If
End Sub
对于我的扁平按钮1\u鼠标套

Private Sub FlatButton1_MouseHover(sender As Object, e As EventArgs) Handles FlatButton1.MouseHover
    Button_Height.Enabled = True
    Button_Height.Start()
End Sub
现在,正如您在按钮高度勾选子菜单中看到的,代码将按钮高度更改为63,但是,当运行此代码时,按钮总高度将更改

这里有一些照片,以防我没有解释清楚


如果您不理解此问题,请在下面进行评论。

您需要更改“顶部”位置,而且我注意到您有一个计时器,然后只需进入一个循环。在您的示例中,不需要计时器

我将给出一个使用计时器的示例,希望您能理解它,并能根据需要使用它。我已将“悬停”更改为“进入”和“离开”

如果速度太慢,只需更改增量

    Dim ChangeHeight As Boolean = False

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    If ChangeHeight Then
        FlatButton1.Height += 2
        FlatButton1.Top -= 2
        If FlatButton1.Height < 63 Then Exit Sub
        FlatButton1.Height = 63
        Timer1.Enabled = False
    Else
        FlatButton1.Height -= 2
        FlatButton1.Top += 2
        If FlatButton1.Height > 31 Then Exit Sub
        FlatButton1.Height = 31
        Timer1.Enabled = False
    End If
End Sub

Private Sub FlatButton1_MouseEnter(sender As Object, e As EventArgs) Handles FlatButton1.MouseEnter
    ChangeHeight = True
    If Timer1.Enabled Then Exit Sub
    Timer1.Enabled = True
    Timer1.Start()
End Sub

Private Sub FlatButton1_MouseLeave(sender As Object, e As EventArgs) Handles FlatButton1.MouseLeave
    ChangeHeight = False
    If Timer1.Enabled Then Exit Sub
    Timer1.Enabled = True
    Timer1.Start()
End Sub
Dim changehight作为布尔值=False
私有子Timer1\u Tick(发送方作为对象,e作为事件参数)处理Timer1.Tick
如果改变高度那么
扁平按钮1.高度+=2
扁平按钮1.顶部-=2
如果扁平按钮1.高度<63,则退出Sub
扁平按钮1.高度=63
Timer1.Enabled=False
其他的
扁平按钮1.高度-=2
扁平按钮1.顶部+=2
如果FlatButton1.高度>31,则退出Sub
扁平按钮1.高度=31
Timer1.Enabled=False
如果结束
端接头
私有子FlatButton1\u MouseEnter(发送方作为对象,e作为事件参数)处理FlatButton1.MouseEnter
更改高度=真
如果定时器1.已启用,则退出Sub
Timer1.Enabled=True
Timer1.Start()
端接头
私有子FlatButton1_MouseLeave(发送方作为对象,e作为事件参数)处理FlatButton1.MouseLeave
changehight=False
如果定时器1.已启用,则退出Sub
Timer1.Enabled=True
Timer1.Start()
端接头

您需要更改“顶部”位置,而且我注意到您有一个计时器,然后只需进入do a循环。在您的示例中,不需要计时器

我将给出一个使用计时器的示例,希望您能理解它,并能根据需要使用它。我已将“悬停”更改为“进入”和“离开”

如果速度太慢,只需更改增量

    Dim ChangeHeight As Boolean = False

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    If ChangeHeight Then
        FlatButton1.Height += 2
        FlatButton1.Top -= 2
        If FlatButton1.Height < 63 Then Exit Sub
        FlatButton1.Height = 63
        Timer1.Enabled = False
    Else
        FlatButton1.Height -= 2
        FlatButton1.Top += 2
        If FlatButton1.Height > 31 Then Exit Sub
        FlatButton1.Height = 31
        Timer1.Enabled = False
    End If
End Sub

Private Sub FlatButton1_MouseEnter(sender As Object, e As EventArgs) Handles FlatButton1.MouseEnter
    ChangeHeight = True
    If Timer1.Enabled Then Exit Sub
    Timer1.Enabled = True
    Timer1.Start()
End Sub

Private Sub FlatButton1_MouseLeave(sender As Object, e As EventArgs) Handles FlatButton1.MouseLeave
    ChangeHeight = False
    If Timer1.Enabled Then Exit Sub
    Timer1.Enabled = True
    Timer1.Start()
End Sub
Dim changehight作为布尔值=False
私有子Timer1\u Tick(发送方作为对象,e作为事件参数)处理Timer1.Tick
如果改变高度那么
扁平按钮1.高度+=2
扁平按钮1.顶部-=2
如果扁平按钮1.高度<63,则退出Sub
扁平按钮1.高度=63
Timer1.Enabled=False
其他的
扁平按钮1.高度-=2
扁平按钮1.顶部+=2
如果FlatButton1.高度>31,则退出Sub
扁平按钮1.高度=31
Timer1.Enabled=False
如果结束
端接头
私有子FlatButton1\u MouseEnter(发送方作为对象,e作为事件参数)处理FlatButton1.MouseEnter
更改高度=真
如果定时器1.已启用,则退出Sub
Timer1.Enabled=True
Timer1.Start()
端接头
私有子FlatButton1_MouseLeave(发送方作为对象,e作为事件参数)处理FlatButton1.MouseLeave
changehight=False
如果定时器1.已启用,则退出Sub
Timer1.Enabled=True
Timer1.Start()
端接头

大家好,欢迎来到StackOverflow。我举了一个小例子,说明了如何实现你的目标

代码:

我做得很快,但这足以让你知道如何实现你的目标


在我的示例中,有一个名为
testBtn
的按钮,当您用鼠标浏览它时,按钮的高度会增加,当您将鼠标移出时,会返回到正常的

您好,欢迎来到StackOverflow。我举了一个小例子,说明了如何实现你的目标

代码:

我做得很快,但这足以让你知道如何实现你的目标


在我的示例中,有一个名为
testBtn
的按钮,当你用鼠标点击它时,按钮的高度会增加,当你将鼠标移出时,按钮会返回正常?但结果是位置不同。我建议创建一个
变量
,用于存储
按钮的
x
y
的位置。是的,所有代码都有效。问题不在于位置,而在于我想要按钮的大小。我举个例子。你知道在“Gmail”或其他任何电子邮件网站上,当你按下“撰写”按钮时,会弹出一个对话框吗?好吧,那是我的按钮。尺寸增加,但位置不变@理查德巴卢尤:你也必须改变地点。通过设置Bounds属性,一次完成所有工作。您认为代码工作正常吗?但结果是位置不同。我建议创建一个
变量
,用于存储
按钮的
x
y
的位置。是的,所有代码都有效。问题不在于位置,而在于我想要按钮的大小。我举个例子。你知道在“Gmail”或其他任何电子邮件网站上,当你按下“撰写”按钮时,会弹出一个对话框吗?好吧,那是我的按钮。尺寸增加,但位置不变@理查德巴卢尤:你也必须改变地点。通过设置Bounds属性,一次完成所有操作。Handles exec。单击这是什么?我添加了更多说明,我只是创建了一个2按钮的快速示例,其中一个按钮增加了另一个按钮的高度。Exec是按钮的名称。OP从未要求按钮不断增加。。。。。。他想要一个鼠标在上面时可以展开的按钮。你的前任