Kyle
Kyle

Reputation: 3

How to make a clean and short code in vb.net

I'm pretty new here on Stack Overflow and this is my first time asking a question so please be kind to me if you find this question stupid or anything.

Does anyone know how can I make these codes short, I mean I would like to put all these codes into one line.. Please see the code below.

Private Sub PB_SearchP_MouseHover(sender As Object, e As EventArgs) Handles PB_SearchP.MouseHover
    PB_SearchP.Image = My.Resources.search1
End Sub

Private Sub PB_SearchP_MouseLeave(sender As Object, e As EventArgs) Handles PB_SearchP.MouseLeave
    PB_SearchP.Image = My.Resources.search
End Sub

Private Sub PB_AddP_MouseHover(sender As Object, e As EventArgs) Handles PB_AddP.MouseHover
    PB_AddP.Image = My.Resources.add_1_iconhover
End Sub

Private Sub PB_AddP_MouseLeave(sender As Object, e As EventArgs) Handles PB_AddP.MouseLeave
    PB_AddP.Image = My.Resources.add_1_icon
End Sub

Private Sub PB_New_MouseHover(sender As Object, e As EventArgs) Handles PB_New.MouseHover
    PB_New.Image = My.Resources.newhover
End Sub

Private Sub PB_New_MouseLeave(sender As Object, e As EventArgs) Handles PB_New.MouseLeave
    PB_New.Image = My.Resources.neww
End Sub

Private Sub PB_Save_MouseHover(sender As Object, e As EventArgs) Handles Btn_Save.MouseHover
    Btn_Save.Image = My.Resources.savehover
End Sub

Private Sub PB_Save_MouseLeave(sender As Object, e As EventArgs) Handles Btn_Save.MouseLeave
    Btn_Save.Image = My.Resources.save
End Sub

Private Sub PB_Update_MouseHover(sender As Object, e As EventArgs) Handles BTN_QUpdate.MouseHover
    BTN_QUpdate.Image = My.Resources.edithover
End Sub

Private Sub PB_Update_MouseLeave(sender As Object, e As EventArgs) Handles BTN_QUpdate.MouseLeave
    BTN_QUpdate.Image = My.Resources.edit
End Sub

Upvotes: 0

Views: 646

Answers (1)

Dai
Dai

Reputation: 155250

A simpler solution is to use a function that sets-up lamba functions as event-handlers:

Public Shared Sub SetUpButton(btn As Button, normalImage As Image, hoverImage as Image)

    AddHandler btn.MouseLeave, Sub(o, e) btn.Image = normalImage
    AddHandler btn.MouseHover, Sub(o, e) btn.Image = hoverImage

End Sub

Called like so:

SetUpButton( Btn_Save, My.Resources.save, My.Resources.savehover )
SetUpButton( Btn_Update, My.Resources.update, My.Resources.updatehover )
SetUpButton( Btn_New, My.Resources.new, My.Resources.newhover )

and so on...

In C#, for a syntax comparison:

public static void SetUpButton(Button btn, Image normalImage, Image hoverImage) {
    btn.MouseLeave += (o,e) => btn.Image = normalImage;
    btn.MouseHover += (o,e) => btn.Image = hoverImage;
}

Upvotes: 1

Related Questions