C# 为什么当我将鼠标悬停在GMap.NET控件上时,我的窗体在顶部?

C# 为什么当我将鼠标悬停在GMap.NET控件上时,我的窗体在顶部?,c#,winforms,gmap.net,C#,Winforms,Gmap.net,在我的主窗体上有一个GMap.NET控件,然后我有第二个窗体,当用户单击按钮时会显示。问题是,当用户离开第二个窗口并将鼠标悬停在主窗体的GMap控件上时,主窗体会出现在前面。当我将鼠标悬停在主窗口的其余部分,第二个窗口在前面时,不会发生这种情况。我还有另一个表单,当程序搜索一些数据时会显示,当用户悬停在地图上时,这个表单也会消失 我希望我解释得足够好,基本上当我在地图上悬停时,主窗口会出现在前面。只有当前面有我的项目的另一种形式时,它才会发生,而不是当前面有任何其他窗口,如firefox或其他什

在我的主窗体上有一个GMap.NET控件,然后我有第二个窗体,当用户单击按钮时会显示。问题是,当用户离开第二个窗口并将鼠标悬停在主窗体的GMap控件上时,主窗体会出现在前面。当我将鼠标悬停在主窗口的其余部分,第二个窗口在前面时,不会发生这种情况。我还有另一个表单,当程序搜索一些数据时会显示,当用户悬停在地图上时,这个表单也会消失

我希望我解释得足够好,基本上当我在地图上悬停时,主窗口会出现在前面。只有当前面有我的项目的另一种形式时,它才会发生,而不是当前面有任何其他窗口,如firefox或其他什么东西时


所以我的问题是:为什么会发生这种情况,我能改变这种行为吗?它是GMap.NET控件的标准吗?顺便说一句,我使用的是1.7.0.0版控件。

查看一些有关如何显示表单的代码可能会有所帮助,但听起来您正在执行类似secondwindow.Show()而不是secondwindow.ShowDialog()的操作,然后来自GMap for Oneter的事件正在执行焦点()

然后,当前面有“其他表单”时,它将以限制对父表单访问的方式打开(ShowDialog()等)。

必须使用

GMap1.DisableFocusOnMouseEnter = true;
我将这段代码添加到我的程序中并解决了问题。

showDialog()在我的情况下可以工作,但至少我没有为OneNet执行focus()的代码。。。但既然这样做有效,非常感谢!