我在这里有一个棘手的问题,我无法解决,我在 msdn 论坛上问过的人也没有。
我正在使用第三方产品(来自 mitov.com 的信号实验室),它是一组 .net 组件。我创建了一个运行良好的 Windows 窗体应用程序。我现在想在另一个表单加载(或显示或激活......)时从另一个表单显示这个表单。
我已经有使用另一种表单的示例:这是典型代码:我正在从主程序加载表单(SecondForm)...
private void SecondForm_Load(object sender, EventArgs e)
{
Form _macros = new Macros(this); //this works perfectly fine
_macros.show(this);
//this is where I have no success
Form _spectrum = new SpectrumScope;
_spectrum.Show();
}
我收到各种错误,从没有显示任何表单,然后是关于不实例化 _spectrum 的异常,到关于不允许跨线程操作的错误,到蓝屏并显示有关处理器之间时钟未同步的消息。
如果我在“第二表单”上放置一个按钮并将显示表单代码添加到点击事件,它工作正常。如果我尝试使用 form.activated 或显示的表单而不是 form.load,则没有区别。如果我在表单 Shown 中添加时间,然后执行 button.performClick,则没有区别。
显然,包含许多组件(以及幕后的许多线程)的表单不喜欢它没有被用户打开的事实。
我对 C# 相当陌生,我很确定这与线程相关。
感谢您的任何帮助。