Jak zapewne wiadomo, korzystanie ze standardowej kontrolki DataGridView dostępnej w .NET często wiąże się z problemami z jej wydajnością. Pomijając już kwestię zaawansowanej optymalizacji, czy też wyłączania efektów wizualnych (w końcu nie chodzi o to żeby coś było brzydkie) najprościej stworzyć klasę:
public static class ExtensionMethods
{
public static void DoubleBuffered(this DataGridView dgv, bool setting)
{
Type type = dgv.GetType();
PropertyInfo pi = type.GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic);
pi.SetValue(dgv, setting, null);
}
}
Następnie w konstruktorze, po inicjalizacji kontrolek, umieszczamy taki kawałek kodu:
ExtensionMethods.DoubleBuffered(MyGridName, true);
Jak można się domyślać po "DoubleBuffered", nasz DataGridView powinien teraz działać znacznie szybciej :)
Pozdrawiam
public static class ExtensionMethods
{
public static void DoubleBuffered(this DataGridView dgv, bool setting)
{
Type type = dgv.GetType();
PropertyInfo pi = type.GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic);
pi.SetValue(dgv, setting, null);
}
}
Następnie w konstruktorze, po inicjalizacji kontrolek, umieszczamy taki kawałek kodu:
ExtensionMethods.DoubleBuffered(MyGridName, true);
Jak można się domyślać po "DoubleBuffered", nasz DataGridView powinien teraz działać znacznie szybciej :)
Pozdrawiam