C# C/S 弹出子窗体时父窗体不能操作
显示第一个窗体ThreadPool.QueueUserWorkItem(newWaitCallback(showAppScanfDialog),frm);privatev...
显示第一个窗体
ThreadPool.QueueUserWorkItem(new WaitCallback(showAppScanfDialog), frm);
private void showAppScanfDialog(object form)
{
frm = (申请及扫描)form;
frm.ShowDialog();
}
显示第二个窗体
ThreadPool.QueueUserWorkItem(new WaitCallback(showScanfAppDialog), ScanfAppFrm);
private void showScanfAppDialog(object form)
{
ScanfAppFrm = (扫描申请)form;
ScanfAppFrm.ShowDialog();
}
这里的第二个窗体是在点击第一个窗体上的按钮后显示的,现在想让第二个窗体显示之后第一个窗体就不能操作了,我把第一个窗体的IsMdiContainer属性设置为了TRUE,在显示第二个窗体的代码中添加ScanfAppFrm.MdiParent = frm;这句代码,运行中这句代码就会提示:线程间操作无效,
从不是创建控件“申请及扫描”的线程访问它。我知道这需要用到代理,可是不知道代码应该怎样写。
还有就是不是说ShowDialog()显示出来的是非模式的窗体么,子窗体显示出来后父窗体本来就不应该能被操作的,可是我的父窗体却依然能操作,这是为什么呢?大神们指导下,谢谢 展开
ThreadPool.QueueUserWorkItem(new WaitCallback(showAppScanfDialog), frm);
private void showAppScanfDialog(object form)
{
frm = (申请及扫描)form;
frm.ShowDialog();
}
显示第二个窗体
ThreadPool.QueueUserWorkItem(new WaitCallback(showScanfAppDialog), ScanfAppFrm);
private void showScanfAppDialog(object form)
{
ScanfAppFrm = (扫描申请)form;
ScanfAppFrm.ShowDialog();
}
这里的第二个窗体是在点击第一个窗体上的按钮后显示的,现在想让第二个窗体显示之后第一个窗体就不能操作了,我把第一个窗体的IsMdiContainer属性设置为了TRUE,在显示第二个窗体的代码中添加ScanfAppFrm.MdiParent = frm;这句代码,运行中这句代码就会提示:线程间操作无效,
从不是创建控件“申请及扫描”的线程访问它。我知道这需要用到代理,可是不知道代码应该怎样写。
还有就是不是说ShowDialog()显示出来的是非模式的窗体么,子窗体显示出来后父窗体本来就不应该能被操作的,可是我的父窗体却依然能操作,这是为什么呢?大神们指导下,谢谢 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询