Button のメンバをぼーっと見てたら、ControlAdded やら ControlRemoved なんてのがありました。
えっ。Button にコントロール貼り付けられんのかー。って事でやってみました。
Image のボタンには敬愛する中先生の画像を使わせていただきました。
TextImageRelation でいろいろ遊んでみたら、結構おもしろい。
クリックしたらコンテキストメニューを出すなんてのは、滅多に使うもんじゃないんですが、
以前のお客さんがこういう UI に固執してたのを思い出して実装してみました。
■参考文献
Button クラス
■実行画像
Button2 に マウスポインタを合わせた時
Button4 を クリックした時
Public Class ButtonTest
Private Sub ButtonTest_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Image ボタン
Me.Button3.Text = "中さん"
Me.Button3.Image = My.Resources.中さん
Me.Button3.Height = My.Resources.中さん.Height + 10
Me.Button3.Width = My.Resources.中さん.Width + 10
' Image と Text の相対位置を指定する
Me.Button3.TextImageRelation = TextImageRelation.TextAboveImage
' フラットなボタン
Me.Button2.FlatStyle = FlatStyle.Popup
Dim tip As ToolTip = New ToolTip()
tip.SetToolTip(Me.Button2, "マウスポインタを乗っけると外観が変化したよねー")
' Button に Label をはっつける
Dim lb As Label = New Label()
lb.Size = New System.Drawing.Size(10, 10)
lb.BackColor = System.Drawing.Color.Blue
lb.Location = New System.Drawing.Point(3, 3)
Me.Button1.Controls.Add(lb)
End Sub
Private Sub Button4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button4.Click
' Button を クリックしたらコンテキストメニューを出す
Dim cntext As ContextMenu = New ContextMenu
Dim onClickEvent As EventHandler = _
New Eventhandler(AddressOf Me.MenuItemOnClick)
cntext.MenuItems.Add(New MenuItem("ふじこ", onClickEvent))
cntext.MenuItems.Add(New MenuItem("エデン", onClickEvent))
cntext.Show(Me.Button4, New System.Drawing.Point(0, Me.Button4.Height))
End Sub
Private Sub MenuItemOnClick(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim senderMenuItem As MenuItem = DirectCast(sender, MenuItem)
MessageBox.Show(senderMenuItem.Text & "がクリックされました")
End Sub
End Class