我不知道如何问这个问题,但这是我受挫时的最后努力。

我有这部分C#代码,它将向服务器(使用JSON)发送将wms图层绘制到地图的请求。该服务器运行并完成其职责,并在地图上显示wms图层。

在这段代码中,有时我想输出他们单击以渲染该地图的时间(基于时间轴的渲染),因此在c#中使用一个包含图片框的UserControl,我渲染此时间轴,然后提出一个工具提示,显示鼠标沿此pictureBox移动时的不同时间。

工具提示定义为全局:

ToolTip myToolTip;

然后,当我在代码中使用它时:

  private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
    {
      //...blah blah blah stuff to calculate time where user clicked based on width  of timeline drawn in the picturebox etc.
      prisms.callServer("Timetable", "setSelection", selection, null); //call to server to tell it to render the map at the time defined by selection
    }


  private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
    {
       //...blah blah..code to calculate mTheDate showing what the time is where they are where they are hovering
       myToolTip.Show(mTheDate, this, toolTipX, toolTipY, 100);
    }


因此,当发生上述情况时,除非将鼠标移离上面带有图片框的userControl,否则地图不会渲染。

但是,如果我在MouseMove中取出myToolTip.show,然后在我单击地图渲染的那一刻(我意识到它可能与我击中的WMS服务器等有很大关系,但它使我相信它与工具提示有关,因为将其删除可以使事情运行得很好,以至于地图渲染都无需将鼠标移出picturebox控件。

因此,我意识到这是一个模糊,朦胧的问题,但是我被困住了,只是将其扔出任何想法。也许我不了解工具提示的更多内容,或者我需要一种不使用工具提示的不同方法?

我还应该指出,即使有工具提示,也确实执行了prisms.Call服务器(使用断点计算出来),所以不确定发生了什么。

最佳答案

运行WMS调用时,您始终可以隐藏工具提示(如果显示),然后继续显示工具提示。

我没有任何工具提示方面的知识。

关于c# - C#ToolTip阻止执行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7759578/

10-12 05:20