2010-04-19 2 views
0

Привет У меня есть специальный запрос ... Я пытаюсь сделать нормальную кнопку, как свести к минимуму и выход ... Я хочу три различных изображений для примера кнопки с выходом:PictureBox1_Click и другое изображение

1) Стабильные открытыми окно имеет exit_1.png

2) Когда вы MOSE-над ней отображать exit_2.png

3) Когда мыши оставить его отображения снова стандарт exit_1.png

4) При ее нажатии (щелкните), он отобразит exit_3.png => эту ситуацию, я не знаю, как s olve в Visual Basic - Спасибо за помощь.

Мой код:

Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click 
    Me.WindowState = FormWindowState.Minimized 
    PictureBox1.Image = My.Resources.exit_3 
End Sub 

Public Sub PictureBox1_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseHover 
    PictureBox1.Image = My.Resources.exit_2 
End Sub 

Public Sub PictureBox1_MouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseLeave 
    PictureBox1.Image = My.Resources.exit_1 
End Sub 

Picture exit_3 не отображается с этим кодом после щелчка. Фотографии exit_2 и exit_1 работают нормально.

ответ

0

Изменение нажмите обработчик MouseDown и MouseUp для перекачки изображений

Private Sub PictureBox1_MouseDown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseDown 
    PictureBox1.Image = My.Resources.exit_3 
End Sub 

Private Sub PictureBox1_MouseUp(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseUp 
    PictureBox1.Image = My.Resources.exit_2 
End Sub 

и нажмите обработчик для кода

Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click 
    Me.WindowState = FormWindowState.Minimized 
End Sub 
0

MouseLeave стреляют после того, как Нажмите событие, когда форма сведена к минимуму. Изображение настроено на exit_3 в обработчике Click, а затем сразу возвращается к exit_1 в обработчике Leave. Вот один из способов исправить это:

Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click 
    Me.WindowState = FormWindowState.Minimized 
End Sub 

Public Sub PictureBox1_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseHover 
    PictureBox1.Image = My.Resources.exit_2 
End Sub 

Public Sub PictureBox1_MouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseLeave 
    if Me.WindowState = FormWindowState.Minimized then 
     PictureBox1.Image = My.Resources.exit_1 
    else 
     PictureBox1.Image = My.Resources.exit_3 
    end if 
End Sub 
Смежные вопросы