Joh*_*tos 4 .net c# vb.net winforms
我正在开发一个 VB Winforms 项目(尽管我对 C# 解决方案也很满意)并进行了以下设置:
msCreateReportsCreate Reports并将其DropDown设置为msCreateReportscmdCreateReports现在,对于我的命令按钮,我为其click事件提供了以下代码:
Private Sub cmdCreateReports_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCreateReports.Click
msCreateReports.Show(Cursor.Position.X, Cursor.Position.Y)
End Sub
Run Code Online (Sandbox Code Playgroud)
编辑(更新/解释):
基本上,我正在寻找的功能是让这个 contextmenustrip 能够显示在两个不同的位置之一,具体取决于用户单击的位置...如果他们单击菜单选项,上下文菜单将显示为Create Reports菜单项上的下拉菜单,或者如果用户单击命令按钮,菜单将在鼠标指针一侧显示为上下文菜单。我希望相同的菜单能够出现在这两个位置之一,具体取决于用户单击的位置以显示此菜单。
现在,我的问题是,只有第一次单击命令按钮时,ContextMenuStrip 才会出现在菜单顶部,而不是像我希望的那样出现在命令按钮顶部。
第一次单击后,菜单出现在正确的位置...我做错了什么/如何解决这个问题?
谢谢!!
我有同样的问题(我使用的是 Visual Studio 2010 SP1 和 C#)。我不认为我们做错了什么,对我来说这看起来像是一个 Winforms 错误。
我是这样修复的:
1)我已经取消设置(使用视觉设计器)DropDown主条带项目的属性。
2)我已经在 contextMenuStrip 上定义了 Opening 事件,并在主条带项目上定义了 DropDownOpening 事件,如下所示:
private void toolStripMyMenuItem_DropDownOpening(object sender, EventArgs e)
{
toolStripMyMenuItemMyLists.DropDown = contextMenuStrip;
}
private void contextMenuStrip_Opening(object sender, CancelEventArgs e)
{
toolStripMyMenuItemMyLists.DropDown = contextMenuStrip;
}
Run Code Online (Sandbox Code Playgroud)
我不再有这个问题了。希望它也能帮助你:-)