如何在按下数字0时重置vb.net中运动图像的位置

时间:2016-11-20 02:04:35

标签: vb.net

我需要以视觉基本形式制作一张动态图片(直升机),每次我按0时返回到着陆垫标签上方的位置,但要考虑到表格的大小。 我尝试将位置设置到该位置,但如果用户最大化窗口,则x和y坐标会发生变化,我不知道如何对其进行编码,使其返回到着陆位置并将其调整到窗体位置。 谢谢你的帮助

https://i.stack.imgur.com/NvyLQ.jpgT

2 个答案:

答案 0 :(得分:-1)

假设您的直升机是PictureBox,而您希望它位于底部的中间位置:

Dim clientSize = Me.ClientSize
Dim x = (clientSize.Width - PictureBox1.Width) \ 2
Dim y = clientSize.Height - PictureBox1.Height

PictureBox1.Location = New Point(x, y)

答案 1 :(得分:-1)

基本上,您只需要执行以下操作:

Public Sub CallMeWhenTheyPressZero()
    Dim dCenterX As Double = Form1.Size.Width/2
    Dim iBottomY As Integer = 10 ' I am going to assume this never changes. (Bottom bar never resizes vertically.)
    Dim dHalfCopterX As Double = CopterPictureBox.Size.Width/2
    Dim iLeftDifference As Integer = System.Math.Round(dCenterX-dHalfCopterY)

    ' Do the center
    CopterPictureBox.Left = iLeftDifference
    CopterPictureBox.Bottom = iBottomY
End Sub

自从我在VB.net中编写代码已经有很长一段时间了,所以如果有任何错误我会道歉。但是,基本思想才是重要的。