Mitigasi: Implementasi IMessageFilter.PreFilterMessage Kustom
Di aplikasi Formulir Windows yang menargetkan versi .NET Framework yang dimulai dengan .NET Framework 4.6.1, implementasi IMessageFilter.PreFilterMessage kustom dapat dengan aman memfilter pesan saat metode Application.FilterMessage dipanggil jika implementasi IMessageFilter.PreFilterMessage:
Lakukan salah satu atau kedua hal berikut:
Menambahkan filter pesan dengan memanggil metode AddMessageFilter.
Menghapus filter pesan dengan memanggil metode RemoveMessageFilter. metode.
Dan memompa pesan dengan memanggil metode Application.DoEvents.
Dampak
Perubahan ini hanya memengaruhi aplikasi Formulir Windows yang menargetkan versi .NET Framework yang dimulai dengan .NET Framework 4.6.1.
Untuk aplikasi Formulir Windows yang menargetkan versi .NET Framework sebelumnya, implementasi tersebut dalam beberapa kasus menimbulkan pengecualian IndexOutOfRangeException saat metode Application.FilterMessage dipanggil
Mitigasi
Jika perubahan ini tidak diinginkan, aplikasi yang menargetkan .NET Framework 4.6.1 atau versi yang lebih baru dapat menolaknya dengan menambahkan setelan konfigurasi berikut ke bagian <runtime bahasa umum> dari file konfigurasi aplikasi:
<runtime>
<AppContextSwitchOverrides value="Switch.System.Windows.Forms.DontSupportReentrantFilterMessage=true" />
</runtime>
Selain itu, aplikasi yang menargetkan versi .NET Framework sebelumnya tetapi berjalan di bawah .NET Framework 4.6.1 atau versi yang lebih baru dapat ikut serta dalam perilaku ini dengan menambahkan pengaturan konfigurasi berikut ke <runtime bahasa umum> bagian dari file konfigurasi aplikasi:
<runtime>
<AppContextSwitchOverrides value="Switch.System.Windows.Forms.DontSupportReentrantFilterMessage=false" />
</runtime>
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk