C#如果在弹出事件中填充,则上下文菜单将跳转

C#如果在弹出事件中填充,则上下文菜单将跳转,c#,contextmenu,C#,Contextmenu,我有一个包含特定文件夹中所有文件的菜单项 menuitem在其自己的弹出事件中填充(使用System.IO.Directory.GetFiles),但是如果它太靠近屏幕的右下角(或者看起来如此),则在填充时会在屏幕上跳得更高 如果我在弹出事件引发之前填充它,菜单项将在通常位置打开 我必须在弹出事件中填充它,以使文件夹的内容保持最新 如果菜单项在弹出事件中填充,为什么会移动?我如何避免它?仔细考虑后,我不确定在弹出时更新菜单是否是最好的方法。在启动时构建一次菜单,并使用FileSystemWatc

我有一个包含特定文件夹中所有文件的菜单项

menuitem在其自己的弹出事件中填充(使用
System.IO.Directory.GetFiles
),但是如果它太靠近屏幕的右下角(或者看起来如此),则在填充时会在屏幕上跳得更高

如果我在弹出事件引发之前填充它,菜单项将在通常位置打开

我必须在弹出事件中填充它,以使文件夹的内容保持最新


如果菜单项在弹出事件中填充,为什么会移动?我如何避免它?

仔细考虑后,我不确定在弹出时更新菜单是否是最好的方法。在启动时构建一次菜单,并使用FileSystemWatcher(如果有不同的位置,也可以使用一些)通知您更改,并根据需要更新菜单。

仔细考虑后,我不确定在弹出时更新菜单是最佳方法。在启动时构建一次菜单,并使用FileSystemWatcher(如果有不同的位置,也可以使用一些)通知您更改,并根据需要更新菜单。

我在DataGridView中也遇到了同样的问题

我使用弹出菜单让用户在填充网格时从几个最典型的输入中进行选择。根据单击的单元格中的内容,选项会有所不同。 我让这个上下文菜单跳跃和闪烁。 我尝试了几种方法,最后我做的是

1.重置我的DataGridView的上下文菜单属性(我的意思是我刚刚将该属性归零)

2.在DataGridView的CellMouseDown事件中填充菜单而不是上下文菜单的打开事件

3.填充后(仍在CellMouseDown中),只需将此菜单分配给此特定单元格即可

myDataGridView[column, row].ContextMenuStrip = myPopUpMenu;

就这样。工作正常,没有任何不希望出现的视觉现象;)

我对DataGridView也有同样的问题

我使用弹出菜单让用户在填充网格时从几个最典型的输入中进行选择。根据单击的单元格中的内容,选项会有所不同。 我让这个上下文菜单跳跃和闪烁。 我尝试了几种方法,最后我做的是

1.重置我的DataGridView的上下文菜单属性(我的意思是我刚刚将该属性归零)

2.在DataGridView的CellMouseDown事件中填充菜单而不是上下文菜单的打开事件

3.填充后(仍在CellMouseDown中),只需将此菜单分配给此特定单元格即可

myDataGridView[column, row].ContextMenuStrip = myPopUpMenu;

就这样。工作正常,没有任何不希望出现的视觉现象;)

您在各种浏览器上看到过这种行为吗?对不起,我没有指定足够的内容。它在Windows应用程序中是C#。contextmenu连接到一个托盘图标(这意味着它大部分时间都在屏幕的右下角,因此这是一个恼人的问题)。您可以添加一些示例代码来显示问题吗?当我在这里试的时候,就我所知它工作正常。填充上下文菜单时没有屏幕更新,并且在弹出处理程序完成之前,菜单不会显示。您在各种浏览器上看到过这种行为吗?抱歉,我没有指定足够的内容。它在Windows应用程序中是C#。contextmenu连接到一个托盘图标(这意味着它大部分时间都在屏幕的右下角,因此这是一个恼人的问题)。您可以添加一些示例代码来显示问题吗?当我在这里试的时候,就我所知它工作正常。填充上下文菜单时不会发生屏幕更新,并且在弹出处理程序完成之前,菜单不会出现。