c# DragDrop 注册失败
report.Preview(); 在打印预览这里报次错误,请高手指教。[STAThread] 着个加过,不这里问题
static void Main() --------------------编程问答-------------------- 请高手指点一下啊 --------------------编程问答-------------------- 怎么没有人啊 --------------------编程问答-------------------- 是否是对事件声明部分的内容作了修改,建议重新创建这个事件
或者
1,有加了[STAThread] 还是出错
static void Main()
2,在主窗体中的Timer的事件中调用下面的代码然后报错
frmdata.ShowDialog();--->提示"DragDrop 注册失败
3,我的做法是:frmdata.ShowDialog(this);//this就是我的主窗体
4,frmdata.ShowDialog(this)也会出现错误不过不是DragDrop 注册失败,而是跨线程操作窗体对象的错误。
5,使用线程安全来调用frmdata.ShowDialog(this)。
下面来看具体的代码:
因为是Timer的事件中来调用frmdata.ShowDialog(this),所以会出现线程间的错误。
这里再用线程安全的方法就可以解决了。
#region 线程安全
private delegate DialogResult FormDelegate(object msg, object form);
public DialogResult ThreadSafeWay(object msg, object form)
{
FormDelegate controlDelegate = new FormDelegate(ThreadSafeWay);
if ((this as Form).InvokeRequired)
{
return (DialogResult)(this as Form).Invoke(controlDelegate,new object[]{ msg, form });
}
else
{
return (form as Form).ShowDialog(this);
}
}
#endregion
现在把原来的代码:
frmdata.ShowDialog();
改成:ThreadSafeWay(null, frmdata);
就可以了。
--------------------编程问答--------------------
你好着是处理窗口调用线程处理,我现在是打印预览的时候就出现这种问题。该怎么调用 --------------------编程问答-------------------- ??在线等啊,急,求救,高手帮帮忙 --------------------编程问答-------------------- 没有人知道着个问题吗? --------------------编程问答-------------------- 我去啊,楼主跟我碰到的问题一样,我也没解决呢,帮忙顶起
补充:.NET技术 , C#