2012-01-03 3 views
0

C#プロジェクト用のインストーラがあります。インストールを続行するには、ライセンスを入力する必要があります。私は、フォームをインスタンス化し、その上でShowDialogを呼び出すことによって、ユーザーからライセンスを取得します。インストールダイアログを最上位にする

私の問題は、ユーザーがインストール中に何かをクリックする可能性があることです。これは、ダイアログボックスが非表示になっている可能性があり、ユーザーがタスクバーのダイアログを検出するまで、インストールが続行されないことを意味します。ライセンスダイアログを一番上に表示したいのですが、どうやって行うのか分かりません。私は何とかBeforeInstallイベントハンドラからインストールアプリケーションを最上位にすることはできますか?インストーラは管理者権限で実行されます。


編集:回答を受け入れるにはあまりにも急いでいるようです。

using (var licenseDlg = new LicenseDialog()) 
{ 
    licenseDlg.TopMost = true; 
    var result = licenseDlg.ShowDialog(); 
    ... 

動作は以下の通りです:

  • 私は私のプロジェクト
  • をインストールしようと、私はそれを許可するようにUACをクリックして、私は今、このような私のBeforeInstallイベントハンドラに次のようにコードを持っていますインストールする
  • 私はcmdウィンドウを最大化します。

何もしなければ、ある時点でライセンスウィンドウがcmdウィンドウにポップアップ表示されます。ただし、cmdプロンプトで何かを入力すると、毎秒約1クリックの割合でライセンスウィンドウがポップアップされず、タスクバーにのみ表示されます。他のウィンドウにアクティビティがある場合でも、ライセンスウィンドウを常にポップアップしたいと思います。

+0

@Kochで – Boris

+0

可能な重複? http://stackoverflow.com/questions/6213498/custom-installer-in-net-showing-form-b​​ehind-installer – rene

+0

@rene:similar。インストーラを一番上に持っていくと、インストーラの上にダイアログが表示されます。 – Boris

答えて

2

ただ単にtrueにTopMostを設定し、あなたがBeforeInstallイベントでフォームを開いているときWindow.Topmost =真

3

を設定する必要があります。

var licenseForm = new Form 
        { 
         TopMost = true 
        }; 
+0

'form.ShowDialog()'も呼び出すことができます。さらに、インストーラのフォームが中断されます。 – Matthias

+0

ありがとう、私は 'ShowDialog()'を呼び出します。 – Boris

+0

@Boris:なぜ私の答えを受け入れなかったのですか? Oo – Matthias

1

TopMostプロパティを使用してください。 loadメソッド

関連する問題