Eto: [WinForms] Pengguliran GridView lumpuh di .Net Core 3.1

Dibuat pada 17 Apr 2020  ·  4Komentar  ·  Sumber: picoe/Eto


Saya tidak bisa memikirkan tempat yang lebih baik untuk meletakkan ini, tetapi inilah alasan pasti mengapa ini rusak di .Net Core 3.1

Perilaku yang Diharapkan

Saya baru saja mulai mengerjakan sebuah program di .Net Core 3.1 pada Windows (menggunakan Formulir secara khusus) dan Kontrol pertama saya yang ditambahkan adalah kombo GridView + DataTable. Ini berfungsi dengan baik hingga Anda mencoba menggulir menggunakan mouse (ya bilah gulir berfungsi dengan baik dari apa yang saya coba)

Perilaku Sebenarnya

Setelah Anda menggulir Grid, Formulir akan macet dan memberikan kesalahan ini:

Unhandled exception. System.TypeLoadException: Could not load type 'System.Windows.Forms.DataGrid' from assembly 'System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
   at Eto.WinForms.ScrollMessageFilter.IsScrollable(Control control)
   at Eto.WinForms.ScrollMessageFilter.PreFilterMessage(Message& m)
   at System.Windows.Forms.Application.ThreadContext.ProcessFilters(MSG& msg, Boolean& modified)
   at System.Windows.Forms.Application.ThreadContext.PreTranslateMessage(MSG& msg)
   at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FPreTranslateMessage(MSG& msg)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.Run(Form mainForm)
   at Eto.WinForms.Forms.ApplicationHandler.Run()
   at Eto.Forms.Application.Run(Form mainForm)
   at Your.Program.Main(String[] args) in Your.Program.cs:line here

Saya memberikan alasan crash ini di kalimat pertama saya, dan akan beralih ke versi .Net Core yang berbeda hanya untuk menghindari ini sampai saya tahu ini telah diselesaikan.

Langkah-langkah untuk Mereproduksi Masalah

  1. Gunakan .Net Core 3.1
  2. Jalankan formulir dengan contoh GridView di Wiki
  3. Gulir roda mouse/trackpad Anda dan alami crash

Kode yang Menunjukkan Masalah

https://github.com/picoe/Eto/wiki/GridView

spesifikasi

  • Versi: 2.5.0 (Nugget)
  • Platform: WinForms
  • Sistem Operasi: Windwos 10

Terima kasih telah melihat masalah saya :)

Semua 4 komentar

Terima kasih telah melaporkan masalah ini. Sepertinya DataGrid telah dihapus di .NET Core 3.1, bersama dengan banyak lainnya. Lihat https://docs.microsoft.com/en-us/dotnet/core/compatibility/winforms#removed -controls.

Kita harus menghapus referensi yang ada di Eto.WinForms saat membangun untuk .NET Core.

Terima kasih telah melaporkan masalah ini. Sepertinya DataGrid telah dihapus di .NET Core 3.1, bersama dengan banyak lainnya. Lihat https://docs.microsoft.com/en-us/dotnet/core/compatibility/winforms#removed -controls.

Ya saya sudah menyebutkan itu di bagian atas masalah saya, senang itu diketahui 👍

Ah, tidak sadar Anda menautkan ke halaman yang sama.. Terima kasih sekali lagi, ini seharusnya relatif mudah diperbaiki, meskipun pertanyaannya adalah apakah akan menambahkan netcoreapp31 TFM atau hanya #jika keluar untuk 3.0+..

Saya berpikir menambahkan TFM baru akan mengekspos masalah ini sebagai kesalahan kompilasi alih-alih harus menghadapinya sebaliknya jadi itu harus lebih baik.

Terima kasih telah mengajukan masalah! Ini harus diperbaiki dalam CI build terbaru dan akan disertakan dalam 2.5.1.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat