0

インストールを続行する前にユーザーがライセンスを入力する必要がある C# プロジェクトのインストーラーがあります。フォームをインスタンス化し、それに対して ShowDialog を呼び出すことで、ユーザーからライセンスを取得します。

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


編集:回答を受け入れるのが早すぎたようです。これで、BeforeInstall イベント ハンドラーに次のようなコードが含まれるようになりました。

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

動作は次のとおりです。

  • プロジェクトをインストールしようとしています
  • UACをクリックしてインストールを許可します
  • コマンド ウィンドウを最大化します。

他に何もしなければ、ある時点でコマンド ウィンドウの上にライセンス ウィンドウが表示されます。ただし、cmd プロンプトで 1 秒あたり約 1 クリックの速度で何かを入力すると、ライセンス ウィンドウはポップアップせず、タスク バーにのみ表示されます。他のウィンドウでアクティビティが発生している場合でも、常にライセンス ウィンドウがポップアップするようにしたいと考えています。

4

4 に答える 4

3

BeforeInstallイベントでフォームを開くときは、単純TopMostに true に設定します。

var licenseForm = new Form
                  {
                      TopMost = true
                  };
于 2012-01-03T15:00:00.807 に答える
2

Window.Topmost = true を設定するだけです

于 2012-01-03T14:59:30.220 に答える
2
this.TopMost = true;

ロード方法で

于 2012-01-03T15:04:35.443 に答える
1

TopMost プロパティを使用してください。

http://msdn.microsoft.com/en-us/library/system.windows.forms.form.topmost.aspx

于 2012-01-03T15:02:18.420 に答える