我正在尝试直接从控制台应用程序实例化表单。
出于某种奇怪的原因,当我调用Form1.Show()
新创建的表单时,它不会绘制所有控件并冻结(HourGlass 图标)。但是,当我调用 ShowDialog() 时,一切正常,除了我需要返回控制台但我不能,所以这不是一个选项......
我应该怎么做才能让我的表单正确显示?我在这里错过了什么吗?
OrderControlForm OrderControlBox = new OrderControlForm();
OrderControlBox.BuyEvent += new OrderControl.BuyDelegate(doBuy);
OrderControlBox.SellEvent += new OrderControl.SellDelegate(doSell);
OrderControlBox.Show();
上面的代码是响应控制台用户输入的命令而调用的。
编辑: 这是工作代码:
Thread mThread = new Thread(delegate()
{
StratControlBox = new StratControl(StratIDs);
StratControlBox.ShowDialog();
});
mThread.SetApartmentState(ApartmentState.STA);
mThread.Start();
我仍然不明白为什么我必须打电话ShowDialog()
而不是Show()
.
当我使用后者时,表格在绘画后立即“消失”。