Share via


Event.SetFilterCommands-Methode (Visio)

Gibt ein Array von Befehlsbereichen und den Wert True oder False an, um anzuzeigen, wie Ereignisse für jeden Befehlsbereich gefiltert werden sollen.

Syntax

Ausdruck. SetFilterCommands( _Commands()_ )

Ausdruck Eine Variable, die ein Event-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
Commands() Erforderlich Long Ein Array von Befehlsbereichen und der Wert True oder False, wodurch angegeben wird, wie Ereignisse für jeden Befehlsbereich gefiltert werden sollen.

Rückgabewert

Nichts

Bemerkungen

Wenn ein Event-Objekt, das mit der AddAdvise-Methode erstellt wurde, der EventList-Auflistung eines Quellobjekts hinzugefügt wird, werden standardmäßig alle Vorkommen dieses Ereignisses an die Ereignissenke übergeben. Die SetFilterCommands-Methode stellt eine Möglichkeit dar, ausgewählte Ereignisse anhand der Befehls-ID zu ignorieren.

Der an SetFilterCommands übergebene Commands()-Parameter ist ein folgendermaßen definiertes Array:

Die Anzahl von Elementen in Commands() ist ein Vielfaches von 3:

  • Das erste Element enthält die Anfangsbefehls-ID des Bereichs (ein beliebiges Mitglied von VisUICmds).

  • Das zweite Element enthält die Endbefehls-ID des Bereichs (ein beliebiges Mitglied von VisUICmds).

  • Das dritte Element enthält den Wert True oder False, der anzeigt, ob Sie Ereignisse für diesen Befehlsbereich überwachen (True zum Überwachen der Ereignisse. False zum Ausschließen der Ereignisse).

Ein Ereignis muss die folgenden Kriterien erfüllen, damit es erfolgreich über einen Befehlsfilter übergeben wird:

  • Das Ereignis muss eine gültige Befehls-ID aufweisen.

  • Wenn alle Filter True sind, muss das Ereignis mindestens mit einem Filter übereinstimmen.

  • Wenn alle Filter False sind, muss das Ereignis mit keinem Filter übereinstimmen.

  • Wenn die Filter eine Mischung aus True und False sind, muss das Ereignis mit mindestens einem True-Filter und mit keinem False-Filter übereinstimmen.

Wenn das Array keine True-Bereiche enthält, werden die Ereignisse als True betrachtet.

Verwenden Sie beispielsweise folgende Anweisung, um ein Array einzurichten, das einen einzelnen Befehl blockiert:

 
    Dim aFilterCommands(1 To (1 * 3)) As Long  
 
    'Ignore the layout command. 
    aFilterCommands(1) = visCmdLayoutDynamic  
    aFilterCommands(2) = visCmdLayoutDynamic  
    aFilterCommands(3) = False 

Oder Sie richten folgendermaßen ein Array ein, das nur den Befehl Send to Back (In den Hintergrund) überwacht:

 
    Dim aFilterCommands(1 To (3 * 3)) As Long  
 
    'Pay attention to the "Send to Back" command.  
    aFilterCommands(1) = visCmdObjectSendToBack  
    aFilterCommands(2) = visCmdObjectSendToBack  
    aFilterCommands(3) = True  
 
    'Ignore any command IDs before the "Send to Back" command.  
    aFilterCommands(4) = visCmdFirst  
    aFilterCommands(5) = visCmdObjectSendToBack - 1  
    aFilterCommands(6) = False  
 
    'Ignore any command IDs after the "Send to Back" command.  
    aFilterCommands(7) = visCmdObjectSendToBack + 1  
    aFilterCommands(8) = visCmdLast  
    aFilterCommands(9) = False 

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.