【问题标题】:how to move a picture box diagonally on button click vb 2010如何在按钮上对角移动图片框单击vb 2010
【发布时间】:2016-01-09 20:27:31
【问题描述】:

我正在处理一个项目,我希望图片框在单击按钮时沿对角线移动。我尝试过使用PictureBox1.Left = 10PictureBox1.Top = 10,但这使得它向左移动一次,然后在其余按钮点击的顶部。我想要它,所以当我单击按钮时,图片框会沿对角线移动一次,而不是单独移动多次。有没有办法做到这一点?这是我到目前为止的代码

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    PictureBox1.Left -= 10
    PictureBox1.Top = 10
End Sub

从 cmets 添加

我试过计时器,但它和按钮一样犯了同样的错误。这是计时器的代码。

Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick 
    PictureBox1.Left -= 10 
    PictureBox1.Top = 10 
End Sub

【问题讨论】:

  • 请看这个:stackoverflow.com/help/how-to-ask 目前很难猜出你想要做什么以及问题是什么。请发布一些您已经拥有的代码。
  • 如果你想要一个动画,你可以多次改变left和top。您可以使用计时器控件并在左侧和顶部添加移动步骤。
  • 我试过定时器,但它和按钮一样犯了同样的错误。这是计时器的代码。 Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick PictureBox1.Left -= 10 PictureBox1.Top = 10 End Sub
  • 您正在将PictureBox 移动到Y=10,并且每次仅将其向左移动。您需要设置PictureBox1.Left -= 10PictureBox1.Top -= 10。这就是您要找的东西?
  • @RezaAghaei,这有点像我正在寻找的东西,我想要它,以便它在移动时显示动画

标签: vb.net winforms vb.net-2010


【解决方案1】:

您的代码中的主要问题是您将PictureBox 移动到固定的 Y 位置 = 10,并且每次仅将其 x 位置更改 -10。

所以它不会沿对角线移动,每次点击按钮时它都会跳转到Y=10 并向左移动。

你需要设置:

PictureBox1.Left -= 10
PictureBox1.Top -= 10 'Here you used PictureBox1.Top = 10

要将其显示为动画,您可以使用带有interval = 100 的计时器,并在-=1 的左侧和顶部切换。

你可以通过减少间隔和增加运动来提高速度。

【讨论】:

    【解决方案2】:

    您可以尝试设置图片框的Location,而不是单独设置每个轴。像这样。

    PictureBox1.Location = New Point(PictureBox1.Left - 10, PictureBox1.Top + 10)
    

    【讨论】:

    • 虽然这确实有效,但我希望它能够在移动时显示动画。
    • 不知道你的意思是显示动画,这将显示每一步的运动。如果您希望它更平滑,请使用较小的增量
    猜你喜欢
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 2018-10-05
    相关资源
    最近更新 更多