0

UIControlledApplicationのDialogBoxShowingイベントを登録しようとしています。しかし、IExternalApplicationインターフェースのOnStartup/OnShutdown実装を使用することはできません。私が思いつくことができる最高のものは...

    public delegate void Handeler(object sender, DialogBoxShowingEventArgs e);

    public void RegesterDialogEvent(UIControlledApplication uicApp)
    {
        UIAppEventHandlers1 uaeh1 = new UIAppEventHandlers1();
        Handeler hdlr = new Handeler(UIAppEventHandlers1.UIAppEvent_DialogBoxShowing_Handler);

        uicApp.DialogBoxShowing += hdlr;

    }

しかし、「タイプ'TaskDialogEvent_01.Form1.Handeler'を'System.EventHandlerAutodesk.Revit.UI.Events.DialogBoxShowingEventArgs>に暗黙的に変換できません」というエラーが発生します。私の「UIAppEventHandlers1」メソッドには、ハンドラーと同じ署名があります。私は何を間違っているのですか?誰かが例を提供できますか?ありがとうございました。

4

1 に答える 1

0

作成したuaeh1インスタンスを使用することをお勧めします。

UIAppEventHandlers1 uaeh1 = new UIAppEventHandlers1();
uicApp.DialogBoxShowing += uaeh1.UIAppEvent_DialogBoxShowing_Handler;

そのオブジェクトを新しくしただけなので、これはまだ奇妙です。

次のように、アプリクラスに登録/登録解除することはできないとおっしゃっていますか?

public Result OnStartup(UIControlledApplication app)
{
    app.DialogBoxShowing += OnDialogBoxShowing;
    return Result.Succeeded;
}

public Result OnShutdown(UIControlledApplication app)
{
    app.DialogBoxShowing -= OnDialogBoxShowing;
    return Result.Succeeded;
}

void OnDialogBoxShowing(object sender, DialogBoxShowingEventArgs args)
{
}

DialogBoxShowingイベントを使用してダイアログを処理することは、私の経験では最善の方法ではありません。新しい障害処理APIを調べることをお勧めします。

于 2012-06-05T16:36:00.370 に答える