Dela via


Åtgärd: Anpassade IMessageFilter.PreFilterMessage-implementeringar

I Windows Forms-appar som är målversioner av .NET Framework från och med .NET Framework 4.6.1 kan en anpassad IMessageFilter.PreFilterMessage implementering på ett säkert sätt filtrera meddelanden när Application.FilterMessage metoden anropas om implementeringen IMessageFilter.PreFilterMessage :

Påverkan

Den här ändringen påverkar endast Windows Forms-appar som är målversioner av .NET Framework från och med .NET Framework 4.6.1.

För Windows Forms-appar som riktar sig mot tidigare versioner av .NET Framework utlöser sådana implementeringar i vissa fall ett IndexOutOfRangeException undantag när Application.FilterMessage metoden anropas

Åtgärd

Om den här ändringen inte är önskvärd kan appar som riktar sig mot .NET Framework 4.6.1 eller en senare version välja bort den genom att lägga till följande konfigurationsinställning i <körningsavsnittet> i appens konfigurationsfil:

<runtime>
    <AppContextSwitchOverrides value="Switch.System.Windows.Forms.DontSupportReentrantFilterMessage=true" />
</runtime>

Dessutom kan appar som riktar sig mot tidigare versioner av .NET Framework men körs under .NET Framework 4.6.1 eller en senare version välja det här beteendet genom att lägga till följande konfigurationsinställning <i körningsavsnittet> i appens konfigurationsfil:

<runtime>
    <AppContextSwitchOverrides value="Switch.System.Windows.Forms.DontSupportReentrantFilterMessage=false" />
</runtime>

Se även