C#ToolTip阻塞执行?

时间:2011-10-13 19:43:05

标签: c# winforms tooltip

我不知道如何提出这个问题,但这是我努力工作的最后努力。

我有一些c#代码,它们会向服务器(使用JSON)发送一个将wms图层绘制到地图的请求。该服务器继续执行其职责,并且bms wms图层出现在地图上。

在这段代码中我有时想输出他们点击的时间来渲染这个地图(它是一个基于时间轴的渲染),所以在c#中使用包含图片框的UserControl,我渲染这个时间轴然后竖起来一个工具提示,显示鼠标沿着此图片框移动的各种时间。

工具提示定义为全局:

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服务器有很多关系等等,但它让我相信它是某种东西使用工具提示,因为删除它会使事情运行得很好,以至于地图呈现而不必将鼠标移离图片框控件。)

所以我意识到这是一个含糊不清,朦胧的问题但是我被困住了,只是把它扔到那里寻找任何想法。也许还有一些我不理解的工具提示,或者我需要一种不使用工具提示的不同方法?

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

1 个答案:

答案 0 :(得分:0)

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

我没有任何特定于工具提示的知识。