![]() |
|
Модераторы: gambit, Partizan |
![]()
|
|
| zss |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: нет Всего: 2 |
не хотел задавать вопрос в соседней теме
1. можно ли сделать нужную колонку авторасширяемой ? и как ограничить минимальный размер - формой ? 2. есть поток, который обрабатывает данные и где-то раз в секунду отрисовывает их. Старые данные удаляются. а новые отрисовываются. Так вот происходит сильное мерцание Ни SuspendLayout ни BeginUpdate не помагают. как можно ускорить отрисовку ? |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 11 Всего: 149 |
||||
|
||||
| zss |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: нет Всего: 2 |
||||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
Рисуем на чём ? Если не прямо на форме, а на панели или другом контроле - то DoubleBuffered не поможет, надо в классе контрола написать:
-------------------- ![]() |
|||
|
||||
| zss |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: нет Всего: 2 |
да ни на чем
это что за чудо - и что оно даст ? Добавлено @ 19:24 и у какого контрола это нужно если я не наследуюсь от ListView Можно например у формы ? |
||||
|
|||||
| DarkDragon |
|
|||
![]() GradVin ![]() ![]() Профиль Группа: Участник Сообщений: 296 Регистрация: 19.8.2006 Репутация: 3 Всего: 8 |
ControlStyles.OptimizedDoubleBuffer - это вроде как я понял оптимизированный двойной буфер.
ControlStyles.AllPaintingInWmPaint - Это короче вся отрисовка в сообщении WmPaint(вроде в WndProc метода у контрола) в совокупности дает немерцающее обновление (методом Refresh или Invalidate) На panel, control, usercontrol Да. |
|||
|
||||
| zss |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: нет Всего: 2 |
ну... в самом деле сильно не помогло еще я заметил некую странность - например просто при расширении формы происходит такой сильный затуп, что все больше и больше возникает желание отказаться от .NET и перейти на старый и проверенный Builder C++ |
|||
|
||||
| Naum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 743 Регистрация: 7.9.2005 Где: Саратов, ул. Поса дского, 298 Репутация: 1 Всего: 15 |
-------------------- У нас всего два праздника Новый год и ТЯПница. |
|||
|
||||
| mr.DUDA |
|
||||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
ListView сделан на стандартном элементе управления Windows, поэтому новые фишки как двойная буферизация, не поддерживает. И переход на билдер не спасёт, если там тот же листвью используется (завёрнут в VCL). Побороть мерцание можно так: 1) для добавления нескольких строк в листвью, вместо Add использовать AddRange 2) или запрещать отрисовку на время добавления строк: ListViewEx.cs
Form1.cs
-------------------- ![]() |
||||
|
|||||
| zss |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: нет Всего: 2 |
mr.DUDA, а как правильно создавать этот класс. как класс или как компонент ?
Если как компонент - то как унаследоваться от существующего, чтоб он был виден в ToolBox? З.Ы. Пока еще не создавал компоненты |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
Как угодно. В любом случае сам на тулбокс попадёт -------------------- ![]() |
|||
|
||||
| zss |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: нет Всего: 2 |
||||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
-------------------- ![]() |
|||
|
||||
| zss |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: нет Всего: 2 |
mr.DUDA, вроде мерцание победил - спасибо
только появилась еще проблемма. Есть 2 ListView. Они отображают иерархию. Тоесть например
тоесть в первом ListView отображается классы В. Если щелкнуть на ListViewItem, то во втором должен отобразиться список классов А для него, но 1. Список 1 постоянно обновляется и теряет выделение (тоесть он сначала очищается, а потом заново заполняется т.к. может меняться). Как можно сохранить выделение? 2. У списка 2 в Tag храниться выбранный класс В из 1 списка. Хотелось бы при изменении самого В, чтоб автоматически менялся и список А (тоесть обновлялся). Как это правильно сделать? 3. Как вообще сказать списку обновиться (например чтоб отработал какой-нибудь его метод)? Тоесть хотелось бы завязать както оба ListView на данные. Может с помощью вспомогательного компонента. |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
По идее, любой контрол можно замапить на источник данных (DataSet, коллекцию объектов etc.), но это не относится к ListView. Придётся всё делать вручную
1. Запоминать выделенный элемент по какому-л. признаку (значение в Tag, etc.) и ставить фокус на него после обновления. Если кол-во элементов не меняется, можно попробовать поиграться с позицией прокрутки (восстанавливать её в то же значение) 2. Обрабатывать события изменения айтема; или я что-то не так понял? 3. Update, Refresh -------------------- ![]() |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |