Eto: [WinForms] GridView-Scrolling stürzt in .Net Core 3.1 ab

Erstellt am 17. Apr. 2020  ·  4Kommentare  ·  Quelle: picoe/Eto


Ich könnte mir keinen besseren Ort vorstellen, um dies zu platzieren, aber hier ist ein genauer Grund, warum dies in .Net Core 3.1 nicht funktioniert

Erwartetes Verhalten

Ich habe gerade begonnen, an einem Programm in .Net Core 3.1 unter Windows zu arbeiten (insbesondere unter Verwendung von Forms), und mein erstes hinzuzufügendes Steuerelement war eine GridView + DataTable-Kombination. Es funktioniert gut, bis Sie versuchen, mit der Maus zu scrollen (ja, die Bildlaufleiste funktioniert gut nach dem, was ich versucht habe).

Tatsächliches Verhalten

Sobald Sie das Raster scrollen, stürzt das Formular ab und gibt diesen Fehler aus:

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

Ich habe den Grund für diesen Absturz in meinem ersten Satz angegeben und werde zu einer anderen Version von .Net Core wechseln, nur um dies zu vermeiden, bis mir bekannt ist, dass dies behoben wurde.

Schritte zum Reproduzieren des Problems

  1. Verwenden Sie .Net Core 3.1
  2. Führen Sie ein Formular mit dem GridView-Beispiel im Wiki aus
  3. Scrollen Sie mit Ihrem Mausrad/Trackpad und erleben Sie einen Absturz

Code, der das Problem demonstriert

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

Spezifikationen

  • Version: 2.5.0 (Nuget)
  • Plattform(en): WinForms
  • Betriebssystem(e): Windows 10

Danke, dass du dir mein Problem anschaust :)

Alle 4 Kommentare

Danke, dass Sie das Problem gemeldet haben. Es sieht so aus, als ob DataGrid zusammen mit zahlreichen anderen in .NET Core 3.1 entfernt wurde. Siehe https://docs.microsoft.com/en-us/dotnet/core/compatibility/winforms#removed -controls.

Beim Erstellen für .NET Core müssen wir den Verweis auf diese in Eto.WinForms entfernen.

Danke, dass Sie das Problem gemeldet haben. Es sieht so aus, als ob DataGrid zusammen mit zahlreichen anderen in .NET Core 3.1 entfernt wurde. Siehe https://docs.microsoft.com/en-us/dotnet/core/compatibility/winforms#removed -controls.

Ja, ich habe das bereits oben in meinem Problem erwähnt, bin froh, dass es bekannt ist 👍

Ah, wusste nicht, dass Sie auf dieselbe Seite verlinkt sind.

Ich denke, das Hinzufügen eines neuen TFM wird diese Probleme als Kompilierfehler aufdecken, anstatt sie anderweitig behandeln zu müssen, also sollte das besser sein.

Danke, dass Sie das Problem gemeldet haben! Dies sollte im neuesten CI-Build behoben und in 2.5.1 enthalten sein.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

Jojatekok picture Jojatekok  ·  33Kommentare

jzlhll picture jzlhll  ·  14Kommentare

canton7 picture canton7  ·  22Kommentare

ArsenShnurkov picture ArsenShnurkov  ·  17Kommentare

Krakean picture Krakean  ·  6Kommentare