Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
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>