В Java все находится в форме класса.
Если вы хотите использовать любой объект, тогда у вас есть две фазы:
Пример:
Object a;
a=new Object();
То же самое для концепции массива
Item i[]=new Item[5];
i[0]=new Item();
Если вы не дают секцию инициализации, тогда возникает NullpointerException
.
Это защищено, потому что DGV наследовал свойство от Управления. И Управление. DoubleBuffered защищен. Который имеет смысл, потому что каждое полученное управление должно решить, чтобы себя включил это. И не имеет смысла для пользователя управления произвольно включать или выключать его. Разработчики DGV, решенные для прочь.
Одна причина они, возможно, решили, что это - то, что двойная буферизация на самом деле делает рисование медленнее. Дополнительный шаг для рендеринга буферного битового массива стоит времени. Это просто выглядит быстрее к человеческому глазу, Вы наблюдаете битовый массив, внезапно появляющийся. Вы не видите время, которое требуется для вовлечения битового массива. Если другие средства управления не должны быть нарисованы, и они получают свою очередь после DGV, затем это довольно видимо.
то, Что Вы видите, является формой, оттягиваемой сначала с дырами, куда средства управления идут. Те дыры имеют белый фон. Черный, когда Вы используете свойство TransparencyKey или Opacity. Каждое управление затем получает событие Paint, и дыры заполнены один за другим. Тот эффект воспринят как мерцание также пользователем, хотя это - другой вид мерцания от того, которое решает DoubleBuffered. Особенно примечательно, когда фон является черным.
, Что необходимо для решения этой проблемы, то, что вся форма, со всеми ее средствами управления, с двойной буферизацией. Это не доступно в Windows Forms. Однако Windows XP и позже на самом деле поддерживает это. Проверьте этот поток , чтобы видеть, как это сделано. Остерегайтесь этого, это может иметь побочные эффекты, как зарегистрировано в тот поток.
Двойная буферизация по определению использует два буфера и дважды память для рендеринга представления управления в. Так, существует некоторый недостаток там, однако, с объемом памяти, Вы входите в ПК теперь, не, многие люди, вероятно, заметили бы жертву.
Никакая идея, почему его защищенный. Возможно, функция не была доступна в ранней версии управления, и когда это было представлено, разработчики не хотели изменять открытый интерфейс управления. Или возможно они полагали, что это было расширенной функцией, и хотели ограничить количество методов, которые кто-то плохо знакомый с управлением будет иметь к grok, чтобы смочь заставить его сделать что-то полезное.
Наследование не требуется для включения двойной буферизации в datagridview . Вы можете сделать это с помощью отражения в существующем datagridview.