0
私はここでかなり新しいStack Overflowです。これは私の初めての質問です。この質問が愚かなものであれば、私に親切にしてください。vb.netできれいで短いコードを作る方法
私はこれらのコードをどのように短くすることができますか知っていますか?これらのコードをすべて1行に入れたいと思います。以下のコードをご覧ください。そのように呼ばれ
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
:
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
Buttonから独自のクラスを派生し、OnMouseXxx()メソッドをオーバーライドします。したがって、これらのイベントハンドラのどれも*必要はありません。 –
@HansPassant 'Button'から派生したものが過剰なようです - OPは' Image'プロパティの自動化に興味があるようです。 – Dai
プログラマーがこれを「怖い」または過度に見つけてしまうのは不思議です。継承はクラスライブラリを効果的に使用するためにwinformsで*重要な*です。イベントハンドラを書く必要はありませんが、過度の機能ではなく、非常にうまくサポートされています。継承が気に入らなければWPFが良い選択肢です。 –