2012-01-02 14 views
0

( "所有者フォームをクリックして" カウントされません:)。)モーダルフォームは最小化され、オーナーフォームが1回クリックされるまでトレイに表示されません。どのように表示させるのですか?

私が持っている:

public partial class Form1 : Form 
{ 
    Form2 frm2 = new Form2(); 

    public Form1() 
    { 
     InitializeComponent(); 
     frm2.Owner = this; 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     frm2.ShowDialog(); 
    } 
} 
+0

私は数年前に同様の問題を抱えていました。私の解決策は、winapiでプレーし、ウィンドウを前面に押し出すことでした。私はこの方法でinteropを探したいと思っています。私はその機能を見つけました。私は 'SetForegroundWindow'と' SetFocus'でなければなりません。 – rekire

+0

タスクバーを意味しますか?あなたのスニペットが問題を再現するのに完全に不十分であることを考えれば、これを別の方法でやりましょう。ダイアログボックスには、タスクバーボタンは表示されません。 ShowInTaskbarプロパティをfalseに設定します。 –

+0

@ HansPassantありがとう。はい、私はタスクバーを意味しました。しかし、なぜそれは不十分ですか? (いずれにせよ、私は質問を更新しました)あなたのソリューションは、最小化されたモーダルフォーム用の小さなウィンドウを作成します。それは良いことではありません。 – ispiro

答えて

1

ちょうど

frm2.ShowDialog(this); 

frm2.Owner = this; 

から設定所有者を変更

(クレジットはgerald-p-wrightになります)

関連する問題