2009-05-29 15 views
6

フォームが読み込まれたときに証明書の条件が満たされている場合、ダイアログボックスをポップアップするウィンドウフォームがあります。問題は、ウィンドウが上にとどまっていないし、私はまだ親のものをクリックすることができます。しかし、フォーム上にボタンを押すと同じウィンドウが開き、これを行うと(ダイアログウィンドウのように)期待どおりに機能します。ShowDialog()はウィンドウをモーダルにしません

フォームが最初に読み込まれるときにダイアログを表示する際に問題がありますか?

+1

あなたが適切に所有者を設定しましたか? – OregonGhost

+0

これにはいくつかの理由があります。ランダムに推測する以外に、問題を診断する唯一の方法は、使用しているコードを確認することです。 –

答えて

2

FormクラスからShowDialogを呼び出していますか?別のフォームから呼び出された場合のみ親ウィンドウを設定するためです。または、IWin32Windowパラメータを持つオーバーロードを使用して、所有者を具体的に設定することもできます。

0

このダイアログはまた、あなたがすることができます親を設定するか、他の側に

private void Form1_Load(object sender, EventArgs e) 
     { 
      //your functionality goes here  
      AboutBox1 box = new AboutBox1(); 
      box.ShowDialog(); 
     } 
    } 

いずれかの閉じられたまではフォームのそれの自己を表示しない私のコードであるとして、あなたが問題をさらに説明することができますTopMostプロパティで確認してください

0

ShowDialogメソッドは、そのフォームにモーダルであるためには親/所有者になるフォームから呼び出す必要があります。代わりに、ダイアログの所有者を直接設定することはできますが、私はそれをする必要はありませんでした。

0

あなたがやりたいDaBomb、

、あなたはあなたのメインフォームのコンストラクタから、NOT Form_Loadイベントから、あなたのモーダルダイアログを呼び出す必要があります。このような

何か:

public Form1() 
    { 
     InitializeComponent(); 
     this.Show(); 
     Form2 popupForm = new Form2(); 
     popupForm.ShowDialog(); 
    } 
関連する問題