Visual Basic 2010 Express — как переключаться между двумя изображениями, расположенными друг над другом?

Мне очень нужна помощь с этой дилеммой.

У меня есть две фотографии лампочки. На одном снимке лампочка ярко светит, а на другом она выключена. Я должен накладывать эти картинки друг на друга и включать и выключать их, нажимая на изображение, но я просто не могу понять код для этого. Как переключаться между этими изображениями? Мне не разрешено использовать кнопку для этого. Я должен нажать на картинку, чтобы изменить ее. Пожалуйста помоги! Ссылка ниже, так как у меня пока недостаточно представителей для публикации реальных изображений.

http://i1293.photobucket.com/albums/b598/BentoBoy1/ScreenHunter_02Sep202252_zps75800aea.png

Открытый класс Form1 Private Sub ExitButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Обрабатывает ExitButton.Click 'Закрыть программу Me.Close() End Sub

Private Sub PrintButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrintButton.Click
    'Print the form in the print preview window
    PrintForm1.PrintAction = Printing.PrintAction.PrintToPreview
    PrintForm1.Print()

End Sub

Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    'Turn the light bulb on.
    MessageLabel.Text = "Turn on the light"
End Sub

Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MessageLabel.Click
    'Display different messages when the light bulbs are clicked.
End Sub

Private Sub RedRadioButton_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RedRadioButton.CheckedChanged
    'Set the MessageLabel text to Red.
    MessageLabel.ForeColor = Color.Red
End Sub

Private Sub BlackRadioButton_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BlackRadioButton.CheckedChanged
    'Set the MessageLabel text to Black.
    MessageLabel.ForeColor = Color.Black
End Sub

Private Sub BlueRadioButton_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BlueRadioButton.CheckedChanged
    'Set the MessageLabel text to Blue.
    MessageLabel.ForeColor = Color.Blue
End Sub

Private Sub GreenRadioButton_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GreenRadioButton.CheckedChanged
    'Set the MessageLabel text to Green.
    MessageLabel.ForeColor = Color.Green
End Sub

Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ProgrammedByLabel.Click
    'Programmed by me.
End Sub

Private Sub ColorsGroupBox_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ColorsGroupBox.Enter
    'Group of different colors.
End Sub

Private Sub NameTextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NameTextBox.TextChanged
    'Name field.
End Sub

Private Sub PictureBox1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LightOnPictureBox.Click
    'Light bulb is on.
    LightOnPictureBox.Image = My.Resources.lighton
    MessageLabel.Text = "Thanks for turning me on, " & NameTextBox.Text
End Sub

Private Sub PictureBox2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LightOffPictureBox.Click
    'Light bulb is off.
    LightOffPictureBox.Image = My.Resources.lightoff
    MessageLabel.Text = "Thanks for turning me off, " & NameTextBox.Text
End Sub

Private Sub NameLabel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NameLabel.Click
    'Name label.
End Sub

Конец класса


person Shawn Robinson    schedule 21.09.2014    source источник


Ответы (1)


Во-первых, я думаю, вам следует взглянуть здесь, чтобы понять, как происходит сравнение изображений. Во-вторых, правильным событием для изменения изображения является PictureBox.Click... Код должен выглядеть следующим образом:

Public Class Form1
    Dim imageBulbOff As Image = My.Resources.BulbOff
    Dim imageBulbOn As Image = My.Resources.BulbOn
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        PictureBox1.Image = imageBulbOff
    End Sub
    Private Sub PictureBox1_Click(sender As System.Object, e As System.EventArgs) Handles PictureBox1.Click
        If PictureBox1.Image Is imageBulbOff Then
            PictureBox1.Image = imageBulbOn
        Else
            PictureBox1.Image = imageBulbOff
        End If
    End Sub
End Class
person Dimitrios_Aravanis    schedule 18.10.2014