Infragistics 上下文菜单未关闭
Infragistics context menu not closing
在我的应用程序中,我使用了 Infragistics 控件。有时一切正常,但有时如果单击其他任何地方,上下文菜单不会关闭。
例子:
1)右键单击项目
2)单击上下文菜单外的某处
3) 上下文菜单应该关闭,但有时它会保持打开状态,直到您单击其中的一个项目。
知道为什么会这样吗?
一些代码,如何创建上下文菜单并将其添加到网格。
Dim contextualMenu As PopupMenuTool = New PopupMenuTool(key)
contextualMenu.DropDownArrowStyle = Infragistics.Win.UltraWinToolbars.DropDownArrowStyle.SegmentedStateButton
AddHandler contextualMenu.BeforeToolDropdown, AddressOf Me.contextualMenu_BeforeToolDropdown
Dim deleteItem As ButtonTool = New ButtonTool("delete")
deleteItem.SharedProps.AppearancesSmall.Appearance.Image = ImagesResources.Delete
deleteItem.SharedProps.Caption = Captions.Delete
AddHandler deleteItem.ToolClick, AddressOf Me.DeleteClick
Dim closeItem As ButtonTool = New ButtonTool("close")
closeItem.SharedProps.AppearancesSmall.Appearance.Image = ImagesResources.Close
closeItem.SharedProps.Caption = Captions.Close
AddHandler closeItem.ToolClick, AddressOf Me.CloseClick
Me.BaseToolbarsManager.Tools.Add(contextualMenu)
Me.BaseToolbarsManager.Tools.Add(closeItem)
Me.BaseToolbarsManager.Tools.Add(deleteItem)
contextualMenu.Tools.AddTool(deleteItem.Key)
contextualMenu.Tools.AddTool(closeItem.Key)
Me.SetcontextualMenu(Me.grid, key)
根据我上面的评论,在可见和不可见调用之后尝试调用此函数:
Private Sub MyDoEvents()
Dim CurrMsg As MSG
'The following loop extract all messages from the queue and dispatch them
'to the appropriate window.
Do While PeekMessage(CurrMsg, 0, 0, 0, PM_REMOVE) <> 0
TranslateMessage CurrMsg
DispatchMessage CurrMsg
Loop
End Sub
这将确保代码在单元格单击事件中得到执行。
在我的应用程序中,我使用了 Infragistics 控件。有时一切正常,但有时如果单击其他任何地方,上下文菜单不会关闭。 例子: 1)右键单击项目 2)单击上下文菜单外的某处 3) 上下文菜单应该关闭,但有时它会保持打开状态,直到您单击其中的一个项目。
知道为什么会这样吗?
一些代码,如何创建上下文菜单并将其添加到网格。
Dim contextualMenu As PopupMenuTool = New PopupMenuTool(key)
contextualMenu.DropDownArrowStyle = Infragistics.Win.UltraWinToolbars.DropDownArrowStyle.SegmentedStateButton
AddHandler contextualMenu.BeforeToolDropdown, AddressOf Me.contextualMenu_BeforeToolDropdown
Dim deleteItem As ButtonTool = New ButtonTool("delete")
deleteItem.SharedProps.AppearancesSmall.Appearance.Image = ImagesResources.Delete
deleteItem.SharedProps.Caption = Captions.Delete
AddHandler deleteItem.ToolClick, AddressOf Me.DeleteClick
Dim closeItem As ButtonTool = New ButtonTool("close")
closeItem.SharedProps.AppearancesSmall.Appearance.Image = ImagesResources.Close
closeItem.SharedProps.Caption = Captions.Close
AddHandler closeItem.ToolClick, AddressOf Me.CloseClick
Me.BaseToolbarsManager.Tools.Add(contextualMenu)
Me.BaseToolbarsManager.Tools.Add(closeItem)
Me.BaseToolbarsManager.Tools.Add(deleteItem)
contextualMenu.Tools.AddTool(deleteItem.Key)
contextualMenu.Tools.AddTool(closeItem.Key)
Me.SetcontextualMenu(Me.grid, key)
根据我上面的评论,在可见和不可见调用之后尝试调用此函数:
Private Sub MyDoEvents()
Dim CurrMsg As MSG
'The following loop extract all messages from the queue and dispatch them
'to the appropriate window.
Do While PeekMessage(CurrMsg, 0, 0, 0, PM_REMOVE) <> 0
TranslateMessage CurrMsg
DispatchMessage CurrMsg
Loop
End Sub
这将确保代码在单元格单击事件中得到执行。