Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I Windows Forms-appar som riktar sig mot versioner 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 IMessageFilter.PreFilterMessage-implementeringen:
Gör något eller båda av följande:
Lägger till ett meddelandefilter genom att anropa AddMessageFilter metoden.
Tar bort ett meddelandefilter genom att anropa RemoveMessageFilter metoden. metod.
Och pumpar meddelanden genom att anropa Application.DoEvents metoden.
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
Minskning av påverkan
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>