Eto: [WinForms] El desplazamiento de GridView falla en .Net Core 3.1

Creado en 17 abr. 2020  ·  4Comentarios  ·  Fuente: picoe/Eto


No podría pensar en un mejor lugar para poner esto, pero aquí hay una razón exacta por la que esto no funciona en .Net Core 3.1

Comportamiento esperado

Acabo de comenzar a trabajar en un programa en .Net Core 3.1 en Windows (usando Forms específicamente) y mi primer control para agregar fue un combo GridView + DataTable. Funciona bien hasta que intenta desplazarse con el mouse (sí, la barra de desplazamiento funciona bien por lo que he intentado)

Comportamiento real

Una vez que desplace la cuadrícula, el formulario se bloqueará y proporcionará este error:

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

Indiqué el motivo de este bloqueo en mi primera oración y cambiaré a una versión diferente de .Net Core solo para evitar esto hasta que sepa que se ha solucionado.

Pasos para reproducir el problema

  1. Usar .Net Core 3.1
  2. Ejecute un formulario con el ejemplo de GridView en el Wiki
  3. Mueva la rueda del mouse/panel táctil y experimente un bloqueo

Código que demuestra el problema

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

Especificaciones

  • Versión: 2.5.0 (Nuget)
  • Plataforma(s): WinForms
  • Sistema(s) operativo(s): Windwos 10

Gracias por echar un vistazo a mi problema :)

Todos 4 comentarios

Gracias por informar el problema. Parece que DataGrid se eliminó en .NET Core 3.1, junto con muchos otros. Consulte https://docs.microsoft.com/en-us/dotnet/core/compatibility/winforms#removed -controls.

Tendremos que eliminar la referencia a aquellos en Eto.WinForms al compilar para .NET Core.

Gracias por informar el problema. Parece que DataGrid se eliminó en .NET Core 3.1, junto con muchos otros. Consulte https://docs.microsoft.com/en-us/dotnet/core/compatibility/winforms#removed -controls.

Sí, ya mencioné eso en la parte superior de mi problema, me alegro de que se sepa 👍

Ah, no me di cuenta de que te vinculaste a la misma página.

Estoy pensando que agregar un nuevo TFM expondrá estos problemas como errores de compilación en lugar de tener que lidiar con ellos de otra manera, por lo que debería ser mejor.

¡Gracias por archivar el problema! Esto debería corregirse en la última compilación de CI y se incluirá en 2.5.1.

¿Fue útil esta página
0 / 5 - 0 calificaciones