主婦と.NETと犬のぶろぐ

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

目次

Blog 利用状況

ニュース

書庫

日記カテゴリ

ContextMenuStrip クラス(System.Windows.Forms.ContextMenuStrip)と ContextMenu クラス(System.Windows.Forms.ContextMenu)

間違えて DateTimePicker を先にやってしまった...
って事で今日は ContextMenuStrip のお勉強。

1.1 の時にお世話になった ContextMenu と合わせて使ってみました。
うーん一緒に実装すると、ここに書いた事だけでも随分いろんなことができるようになったもんだなぁって思いました。
ContextMenu クラスの説明にこう書いてありました。

[引用]
ContextMenuStrip では、以前のバージョンの ContextMenu コントロールの機能が置換または追加されていますが、下位互換性を維持し、必要に応じて今後も使用できるように、ContextMenu も残されています。
[/引用]

つまり、2.0 でコンテキストメニュー機能を実装する場合には、ContextMenuStrip の方を使いなさいよって事ですか。
...でも私は今日はじめて使ったのだった...

■参考文献
ContextMenuStrip クラス
ToolStripItem クラス
ToolStripMenuItem クラス
ToolStripDropDown クラス
ContextMenu クラス
MenuItem クラス

■実行画像
ContextMenuStrip
ContextMenuStrip
ContextMenu
ContextMenu

Public Class ContextMenuStripTest

Private Sub ContextMenuStripTest_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'' ContextMenuStrip を使ってみる Dim cntextStrip As ContextMenuStrip = New ContextMenuStrip
'---------- ToolStripButtonの作成 ---------- Dim tstripButton As ToolStripButton = New ToolStripButton() cntextStrip.Items.Add(tstripButton) ' 押下時のイベントを登録 AddHandler tstripButton.Click, AddressOf ToolStripButton_Click tstripButton.Text = "test" tstripButton.BackColor = Color.CadetBlue
'---------- セパレータを追加する ---------- cntextStrip.Items.Add(New ToolStripSeparator)
'---------- ComboBox を追加する ---------- Dim cmbBox As ToolStripComboBox = New ToolStripComboBox cntextStrip.Items.Add(cmbBox) cmbBox.Items.Add("ふじこ") cmbBox.Items.Add("エデン") cmbBox.Items.Add("オット") cmbBox.SelectedItem = "オット" 'オットを選択 ' コンボボックス選択アイテム変更時のイベントを登録 AddHandler cmbBox.SelectedIndexChanged, AddressOf Me.ToolStripComboBox_SelectedIndexChanged
'---------- ToolStripMenuItem を 追加する ---------- Dim mnuItem As ToolStripMenuItem = New ToolStripMenuItem mnuItem.Text = "わんくま" cntextStrip.Items.Add(mnuItem) '---------- おまけのボタンを作成 ---------- Dim omakeButton As ToolStripButton = New ToolStripButton() ' ToolStripMenuItem にぶらさげ mnuItem.DropDownItems.Add(omakeButton) ' 押下時のイベントを登録 AddHandler omakeButton.Click, AddressOf ToolStripButton_Click ' 画像の設定 omakeButton.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText omakeButton.Image = New Bitmap(My.Resources.中さん) omakeButton.ImageTransparentColor = System.Drawing.SystemColors.Control omakeButton.Text = "中さん" omakeButton.Size = New Size(100, 50)
Dim lblForStrip As Label = New Label lblForStrip.Size = New Size(150, 50) lblForStrip.Text = "ContextMenuStrip 用" lblForStrip.BackColor = Color.LightBlue lblForStrip.Location = New Point(10, 10) lblForStrip.ContextMenuStrip = cntextStrip Me.Controls.Add(lblForStrip)

'' ContextMenu を使ってみる Dim cntext As ContextMenu = New ContextMenu
'---------- MenuItem の作成 ---------- Dim contextItem As MenuItem = New MenuItem cntext.MenuItems.Add(contextItem) '---------- 押下時のイベントを登録 ---------- AddHandler contextItem.Click, AddressOf MenuItem_Click contextItem.Text = "test"
'---------- セパレータの追加 ---------- cntext.MenuItems.Add(New MenuItem("-"))
'---------- 枝分かれ MenuItem の作成 ---------- Dim edaMenuItem As MenuItem = New MenuItem edaMenuItem.Text = "wankuma" cntext.MenuItems.Add(edaMenuItem) edaMenuItem.MenuItems.Add(New MenuItem("どり様", AddressOf Me.MenuItem_Click))
Dim lblForContext As Label = New Label lblForContext.Size = New Size(150, 50) lblForContext.Text = "ContextMenu 用" lblForContext.BackColor = Color.LightGreen lblForContext.Location = New Point(10, 100) lblForContext.ContextMenu = cntext Me.Controls.Add(lblForContext)
End Sub
Private Sub ToolStripButton_Click(ByVal sender As Object, ByVal e As EventArgs) Dim btn As ToolStripButton = DirectCast(sender, ToolStripButton) MessageBox.Show(btn.Text & "が押下されました") End Sub
Private Sub MenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Dim itm As MenuItem = DirectCast(sender, MenuItem) MessageBox.Show(itm.Text & "が押下されました") End Sub
Private Sub ToolStripComboBox_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Dim cmb As ToolStripComboBox = DirectCast(sender, ToolStripComboBox) MessageBox.Show(cmb.SelectedItem.ToString() & "が選択されました") End Sub End Class

投稿日時 : 2006年12月18日 14:13

Feedback

# re: ContextMenuStrip クラス(System.Windows.Forms.ContextMenuStrip)と ContextMenu クラス(System.Windows.Forms.ContextMenu) 2006/12/18 15:14 επιστημη

中さん、えらく窮屈そうなんですケド…

# re: ContextMenuStrip クラス(System.Windows.Forms.ContextMenuStrip)と ContextMenu クラス(System.Windows.Forms.ContextMenu) 2006/12/18 16:45 なおこ(・∀・)

>> えぴさん
もはや中さんかどうかも解らないですねw

# MenuStrip(System.Windows.Forms.MenuStrip) 2007/02/22 10:09 主婦と.NETと犬のぶろぐ

MenuStrip(System.Windows.Forms.MenuStrip)

タイトル  
名前  
Url
コメント