2015-05-18 68 views
0

我將在窗體上顯示30個不同的圖片框,並使用鍵盤上的箭頭鍵移動它們。但我不知道如何使用我擁有的代碼移動多個圖片框。理想情況下,我想在這個時候點擊移動一個,這裏是我的代碼必須移動圖片框:如何在點擊VB.Net時移動多個圖片框?

Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown 
    Select Case e.KeyCode 
     Case Keys.Left 'Left Arrow Key to move picture boxes left 
      Me.PictureBox1.Left -= 1 
     Case Keys.Up 'Up Arrow Key to move picture boxes left 
      Me.PictureBox1.Top -= 1 
     Case Keys.Right 'Right Arrow Key to move picture boxes left 
      Me.PictureBox1.Left += 1 
     Case Keys.Down 'Down Arrow Key to move picture boxes left 
      Me.PictureBox1.Top += 1 
    End Select 
End Sub 

如何移動的30個圖片框一個單獨點擊時?

感謝您的時間

回答

0

PictureBox類型的類級變量。
此變量應該保存對用戶點擊的最後一個PicrureBox的引用。 然後,您只需更改KeyDown代碼即可移動類級變量。

' on the form level 
dim CurrentPictureBox As PictureBox 

' use the same Click event for all PictureBoxes to populate this variable: 
CurrentPictureBox = Cast(Sender, PictureBox) 


' Change your existing code: 
if not CurrentPictureBox is nothing then 
Select Case e.KeyCode 
    Case Keys.Left 'Left Arrow Key to move picture boxes left 
     CurrentPictureBox.Left -= 1 
    Case Keys.Up 'Up Arrow Key to move picture boxes left 
     CurrentPictureBox .Top -= 1 
    Case Keys.Right 'Right Arrow Key to move picture boxes left 
     CurrentPictureBox .Left += 1 
    Case Keys.Down 'Down Arrow Key to move picture boxes left 
     CurrentPictureBox.Top += 1 
End Select 
end if 

注:代碼直接寫在這裏,而且它已經因爲我的VB.Net天時間。代碼中可能存在一些錯誤,但這個想法是重要的。

+0

好的,謝謝你的信息,需要什麼代碼來改變KeyDown事件來移動類級變量?我目前幾乎沒有使用VB的經驗 – snipar

+0

看到我編輯的答案。 –

+0

非常感謝!我最終不得不對CurrentPictureBox發件人進行一些更改,但現在它的全部工作。謝謝! – snipar

相關問題