日期:2014-05-19  浏览次数:21170 次

一个与com对象交互的难题,在线等
我引进来一些第三方的组件,但某组件的doubleclick事件中,如果我要new   一个用c#写的窗体,是没反应的,而消息框可以出来,如下:

MessageBox.Show( "123 ");//正常
StyleSelector   ss1   =   new   StyleSelector(2);
if(ss1.ShowDialog()   ==   DialogResult.OK)//为什么出不来窗体??
{
if(ss1.getSymbol()!=null)
      lSymbol   =   (ISymbol)ss1.getSymbol();
}

请问这种情况如何解决?

------解决方案--------------------
不要直接show

try
BeginInvoke
------解决方案--------------------
这样,因为BeginInvoke是立即返回,则如果你Invoke的方法执行耗时,在你判断if(pReturnedSymbol != null)的时候还没执行完。