主婦と.NETと犬のぶろぐ

奥様 と プログラム と お犬様 の 楽しい日常

目次

Blog 利用状況

ニュース

書庫

日記カテゴリ

Button(System.Windows.Forms.Button)

Button のメンバをぼーっと見てたら、ControlAdded やら ControlRemoved なんてのがありました。
えっ。Button にコントロール貼り付けられんのかー。って事でやってみました。

Image のボタンには敬愛する中先生の画像を使わせていただきました。
TextImageRelation でいろいろ遊んでみたら、結構おもしろい。

クリックしたらコンテキストメニューを出すなんてのは、滅多に使うもんじゃないんですが、
以前のお客さんがこういう UI に固執してたのを思い出して実装してみました。

■参考文献
Button クラス

■実行画像
Button2 に マウスポインタを合わせた時
Button Button2 に マウスポインタを合わせた時

Button4 を クリックした時
Button 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

投稿日時 : 2006年12月8日 12:09

Feedback

# re: Button(System.Windows.Forms.Button) 2006/12/08 12:46 じゃんぬねっと

Control は、すべてそうだったような...

# re: Button(System.Windows.Forms.Button) 2006/12/08 13:00 なおこ(・∀・)

>> じゃんぬさん
ですね。
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.control.controls(VS.80).aspx
Control から派生してるから当然か。

# re: 業務連絡:12/9の集合時間は10:00 2006/12/08 14:01 中の技術日誌ブログ

re: 業務連絡:12/9の集合時間は10:00

# re: Button(System.Windows.Forms.Button) 2006/12/08 17:02 えムナウ

ControlAddedはControlが持っています。
Imageに画像はっつけても発生しませんよ。

Button3.Controls.Add(new TextBox())
なんてやると楽しいかも。

タイトル  
名前  
Url
コメント