2

カスタマイズ ダイアログを変更したいので作成しました。しかし、モンド UI の [ようこそ] ダイアログの後に、このカスタム ダイアログを表示したいと考えています。

私がそれを行う場合:

<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="CustomizeDlg">1</Publish>
<Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="3">1</Publish>
<Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="CustomCustomizeDlg" Order="4">1</Publish>
<Publish Dialog="CustomCustomizeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">1</Publish>
<Publish Dialog="CustomCustomizeDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="4">1</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="CustomCustomizeDlg" Order="4">1</Publish>

その後、すべてが正常に機能します...しかし、次のようなものを作成すると:

<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="CustomCustomizeDlg">1</Publish>
<Publish Dialog="CustomCustomizeDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="3">1</Publish>
<Publish Dialog="CustomCustomizeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">1</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="CustomCustomizeDlg" Order="4">1</Publish>

次に、カスタマイズダイアログが表示されず、代わりに、ようこその後にライセンスダイアログが表示されます...

まったくわかりませんでした...この動作は私にとって奇妙です...何かアイデアはありますか?

編集:

msi DB では、CustomCustomizeDlg の次の WelcomeDlg のコントロール イベントが登録されていることを発見しましたが、LicenseDialog と両方の順序も 1 です... licenseDialog の行を削除すると問題なく動作するので、私の質問は、その行を削除せずに削除する方法です。シャチを使って...

4

1 に答える 1

1

削除する必要はありません。コントロール イベントを 1 より大きい順序で追加するだけで (確実に 10 程度を試してみてください)、優先されます。

複数の NewDialog が開く候補の場合、順序番号が最も大きいもののみが選択されます。こちらまたはこちらで同様の質問に対する回答を見つけることができます。

さらに、 MSDN ControlEvent テーブルのドキュメントでイベントの順序について読むことができます。

注意すべき例外は、各コントロールが最大 1 つの NewDialog または 1 つの SpawnDialog イベントを発行できることです。この表で複数の NewDialog および SpawnDialog コントロール イベントを作成する必要がある場合は、Condition フィールドに条件ステートメントも含めて、最大で 1 つのイベントが発行されるようにします。複数の NewDialog および SpawnDialog コントロール イベントが同じコントロールに対して選択されている場合、コントロールがアクティブ化されたときに、Ordering 列の値が最大のイベントのみが公開されます。

于 2013-09-30T16:02:56.847 に答える