■52608 / inTopicNo.3) |
Re[2]: フォームのToolStripMenuをクリックせずに開きたい |
□投稿者/ やじゅ (1703回)-(2010/08/17(Tue) 23:52:41)
|
■No52597 (こちこち さん) に返信
MenuStripコントロールの場合
http://dobon.net/vb/dotnet/control/menuitemselect.html
メニューをマウスで選択すると、下位メニューが表示されます。
タイマーを使ってフォーム外になると、下位メニューを非表示にします。
'フォームのLoadイベントハンドラ
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
'イベントハンドラの追加
AddHandler Menu1ToolStripMenuItem.Paint, AddressOf menu1ToolStripMenuItem_Paint
AddHandler Menu2ToolStripMenuItem.Paint, AddressOf menu1ToolStripMenuItem_Paint
End Sub
'ToolStripMenuItemのPaintイベントハンドラ
Sub menu1ToolStripMenuItem_Paint(ByVal sender As Object, ByVal e As PaintEventArgs)
Dim item As ToolStripMenuItem = CType(sender, ToolStripMenuItem)
If item.Selected Then
item.ShowDropDown()
End If
End Sub
'Timerイベントハンドラ
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'マウスがフォーム外かチェック
If Me.Bounds.IntersectsWith(New Rectangle(Form1.MousePosition.X, Form1.MousePosition.Y, 0, 0)) = False Then
For Each item As ToolStripMenuItem In MenuStrip1.Items
item.HideDropDown()
Next
End If
End Sub
|
|