コンソールアプリから直接フォームをインスタンス化しようとしています。
奇妙な理由で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()
。
後者を使用すると、ペイント後すぐにフォームが「消える」だけです。