CellPainting és görgetés/átméretezés a DataGridViewban

A WinForms még létezik, és időnként emlékeztet arra, hogy meg kell adni neki a kora miatt kijáró tiszteletet. 🙂 Sajnos ezt képes úgy elkövetni, hogy átmegy kiszámíthatatlanba.

Most épp a DataGridView őrült meg. A jelenség: egy olyan DataGridViewban, amelynél saját kirajzolást alkalmazunk (feliratkoztunk a CellPaintingre, az eseménykezelőben meg tettük, amit tenni kell), a DataGridView görgetés és átméretezés esetén rosszul rajzolódik ki. Konkrétan olvashatatlan lesz. 🙂

A legérdekesebb, hogy nem mindig jön elő a hiba. Ugyanaz az alkalmazás az egyik gépen jól működött, a másikon a fent leírt híbát produkálta. Ugyanazon az oprendszeren, ugyanazon beállítások mellett…

Mivel arra nem építhetünk, hogy a felhasználók gépén majd pont jól fog futni, kellett egy másik megoldás. Felmerült, hogy ágyazzunk be egy WPF DataGridet, de az interakciók komplexitását figyelembe véve elég sok többletmunka lett volna átírni mindent a WPF-es események, logika használatára.

Rövidre zárva: némi próbálkozás után arra a megoldásra jutottam, hogy a DataGridViewt le kell cserélni egy példányra ebből:

class DBuffDataGridView : DataGridView
{
   public DBuffDataGridView()
   {
      DoubleBuffered = true;
   }
}

Igen, ennyi. Azt nem mondhatom, hogy 100%-osan jó megoldás, de azokon a gépeken, amelyeken előfordult a hiba, ezzel már nem jelent meg, úgyhogy jók a kilátások. 🙂

Reklámok

~ Szerző: Fülöp Dávid - 2013. október 8..

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s

 
%d blogger ezt kedveli: