さて、これは私が達成しようとしていることの主な本質であり、それがしていることの症状です。
メインウィンドウフォームがあります。このフォームで、ユーザーは新しい別のフォームを開くボタンをクリックできます。このフォームには、FolderBrowserDialogを表示するためのボタンがあります。代わりに、form2をロックするだけで、何も表示されません。
これが基本的に私がフォームなどを扱っているコードです。
これは、私がいくつかの面白くないことをした後にロードされる最初の形式です。
FORM1.cs
//do stuff
//In a button.click method I do the following
Application.Run(new Form2(myParameters1, 2, 3));
これは、最初のフォームから呼び出される2番目のフォームです
FORM2.cs
//do more stuff with the parameters on load
//user clicks on a button
private void button1_Click(object sender, EventArgs e)
{
FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.RootFolder = Environment.SpecialFolder.Desktop;
fbd.Description = "This is the browser dialog box";
if(fbd.ShowDialog() == DialogResult.OK)
{
//do stuff
}
}
ボタンをクリックした後、ダイアログボックスが表示されず、form2は何も実行できなくなります。
私も変更を試みました
fbd.ShowDialog()
に
fbd.ShowDialog(Form2.ActiveForm)
同じ結果になります。
どんな助けでもいただければ幸いです!さらに詳しい情報が必要な場合はお知らせください。できる限りの情報を提供できるよう努めます。
編集
私は、2番目のフォームを開くメソッドが別のスレッドであることを言及するのを忘れました(そして実際には完全に忘れました)。
したがって、最初のフォームはスレッドを開始し、2番目のフォームを開きます。これは、そうではないダイアログを開くことになっています。今、私はそれが糸脱毛に関係していると思います。