好吧,我在这个问题上挣扎了很多。我尝试做一个简单的拖放操作,所以我在主窗体(从主线程操作的那个)中完成了它,它听起来很简单。代码是这样的:
protected override void OnMouseDown(MouseEventArgs e)
{
DragDropEffects EffectResult=DoDragDrop("Hello", DragDropEffects.Copy);
base.OnMouseDown(e);
}
我说的只是源代码。我现在不在乎目标。因此,在主窗体中,这段代码运行良好,当我按下鼠标、按住并移动它时,我看到了拖动的迹象(在这种情况下是一个带有线条的圆圈)。
现在在主线程中,我正在调用其他线程并使用代码打开一个新表单ShowDialog()
问题从这里开始,当我在新表单中放入完全相同的代码时,它为 EffectResult 变量返回 None 并且对光标不执行任何操作。
我想问题可能是因为新线程,它们异步工作,但我该如何解决?