因为这是一个相当大的项目,我经常需要从类中访问其他形式的对象,所以我首先在我的program.cs类中创建一个静态变量, MainForm“,它是一个Windows窗体。我从DataManger.cs类实例化对象'Program.MainFormObj = new MainForm()',然后调用Show方法以显示我的Form。它看起来像表单的Paint事件没有完成,但它确实随着一些控件的绘制而启动。大概是因为主线程(这全部在主线程中运行)被下一个语句“占用”。我想,不管已知的问题,我会使用Application.DoEvents()来暂时解决这个问题。按照我的想象,它起作用了,但仅在一定程度上。如果我放置一个像MessageBox.Show()这样的阻塞方法,我可以在后台查看完全无瑕疵的表单,但只要按下'OK'并且代码继续执行,整个应用程序就会退出。当我显示新表格时,控件是白色的
我真的被卡住了。尽管在这里和谷歌使用了一些广泛的搜索,但我无法找到一个apporpiate的答案。我做了这个线程:Form.Show() is not showing it's child controls但给定的解决方案不适合我的解决方案。非常感谢任何帮助,谢谢。
你至少违反了两条“永远不要这样做!” Winforms编程规则。你还可以做什么只能猜到。这是目前的形式不是一个可回答的问题,请访问您当地的书店或图书馆,找到正确的Winforms编程技术书籍。 –