ドキュメンテーション センター

  • 評価版
  • 製品アップデート

目次

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

unregisterevent

実行時に COM オブジェクト イベントに関連付けられたイベント ハンドラーの登録を解除する

構文

h.unregisterevent(eventhandler)
unregisterevent(h, eventhandler)

説明

h.unregisterevent(eventhandler) は、対応するイベントから特定のイベント ハンドラー ルーチンの登録を解除します。一度イベントの登録を解除すると、オブジェクトはイベントに反応しません。

unregisterevent(h, eventhandler) は、代替構文です。

コントロールの作成後は、常時イベントの登録を解除できます。セル配列である eventhandler 引数は、イベントとイベント ハンドラーの両方を指定します。

h.unregisterevent({'event_name',@event_handler});

イベントの名前を使用して、eventhandler 引数でイベントを指定します。eventhandler 引数で使用される文字列は、大文字と小文字を区別しません。関数 unregisterevent は数値イベント識別子を受け入れません。

COM 関数は、Microsoft® Windows® システムでのみ使用可能です。

コントロールのイベントの登録を解除するには

  1. mwsamp コントロールを作成して、すべてのイベントを同じコールバック ルーチン sampev に登録します。各イベントに使用されるイベント ハンドラーを参照するには、関数 eventlisteners を使用します。この場合、起動される個々のイベントは、sampev.m を呼び出します。

    f = figure ('position', [100 200 200 200]);
    h = actxcontrol('mwsamp.mwsampctrl.2', ...
        [0 0 200 200], f, ... 
        'sampev');
    h.eventlisteners
    

    MATLAB® には以下のように表示されます。

    ans = 
        'Click'         'sampev'
        'DblClick'      'sampev'
        'MouseDown'     'sampev'
        'Event_Args'    'sampev'
  2. dblclick イベントの登録を解除します。ここで、関数 eventlisteners を使って登録されているイベントをリストすると、dblclick が登録されていないことがわかります。コントロールは、その上でマウスをダブルクリックしても何の反応もありません。

    h.unregisterevent({'dblclick' 'sampev'});
    h.eventlisteners
    

    MATLAB には以下のように表示されます。

    ans = 
        'Click'         'sampev'
        'MouseDown'     'sampev'
        'Event_Args'    'sampev'
  3. ここで、myclickmy2click に別々のイベント ハンドラーを使用して、clickdblclick イベントを登録します。

    h.unregisterallevents;
    h.registerevent({'click' 'myclick'; ...
        'dblclick' 'my2click'});
    h.eventlisteners
    

    MATLAB には以下のように表示されます。

    ans = 
        'click'       'myclick' 
        'dblclick'    'my2click'
    
  4. セル配列に、イベント名とそのハンドラー ルーチンを指定することで、次の同じイベントの登録を解除します。関数 eventlisteners は、空のセル配列を返します。これは、mwsamp コントロールにイベントが登録されていないことを意味しています。

    h.unregisterevent({'click' 'myclick'; ...
        'dblclick' 'my2click'});
    h.eventlisteners
    

    MATLAB には以下のように表示されます。

    ans = 
         {}
    
 

Microsoft Excel® ワークブックのイベントの登録を解除します。

  1. Workbook オブジェクトを作成し、イベント ハンドラー ルーチンで 2 つのイベント EvtActivateHndlrEvtDeactivateHndlr を登録します。

    myApp = actxserver('Excel.Application'); 
    wbs = myApp.Workbooks; 
    wb = wbs.Add;wb.registerevent({'Activate' 'EvtActivateHndlr'; ...
        'Deactivate' 'EvtDeactivateHndlr'})
    wb.eventlisteners

    MATLAB は、対応するイベント ハンドラーと共にイベントを示します。

    ans = 
        'Activate'      'EvtActivateHndlr'  
        'Deactivate'    'EvtDeactivateHndlr'
  2. 次に Deactivate イベント ハンドラーの登録を解除します。

    wb.unregisterevent({'Deactivate' 'EvtDeactivateHndlr'})
    wb.eventlisteners

    MATLAB は、対応するイベント ハンドラーと共に登録されたまま (Activate) のイベントを示します。

    ans = 
        'Activate'    'EvtActivateHndlr'

参考

| | | |

この情報は役に立ちましたか?