powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Жуткие тормоза в TableLayoutPanel
11 сообщений из 11, страница 1 из 1
Жуткие тормоза в TableLayoutPanel
    #36440778
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делаю простую прогу для проведения "Своей Игры". Надо чтобы игровое поле принимало размер формы и ширина/высота колонок/рядов сохранялись - процент от общей ширины/высоты. Сделал на TLP, программно создаю колонки и Label-ы в ячейки сую. Все бы хорошо, но при ресайзе формы такиииие тормоза, как будто у меня там 100+ компонент. ДаблБуфер у формы не помогает.

DataGridView не подойдет, т.к. ширина колонок у него абсолютная, а надо относительную. Но если что, придется юзать ее и ручками ширины задавать при ресайзе.

Еще вариант - WPF. Там хотя бы аппаратный директХ.

Я лублу C#
...
Рейтинг: 0 / 0
Жуткие тормоза в TableLayoutPanel
    #36440848
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychik,

в винформах это так. Гладко будут работать только 5-6 контролов. Я делал нечто подобное - так к тормозам перерисовки во время ресайза пришлось привыкнуть.
...
Рейтинг: 0 / 0
Жуткие тормоза в TableLayoutPanel
    #36440857
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я выкинул этот tlp, сделал через DataGridView и ручное изменение ширины/высоты ячеек в OnResize. Практически не тормозит. Щас сделаю динамический размер шрифта и все.

Я лублу C#
...
Рейтинг: 0 / 0
Жуткие тормоза в TableLayoutPanel
    #36440895
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychikя выкинул этот tlp, сделал через DataGridView и ручное изменение ширины/высоты ячеек в OnResize. Практически не тормозит. Щас сделаю динамический размер шрифта и все.

Я лублу C#
У меня по-другому немного - контролы это секции ящика, их относительные координаты хранятся в базе, я просто пересчитываю новые координаты и размеры в зависимости от нового размера формы.
...
Рейтинг: 0 / 0
Жуткие тормоза в TableLayoutPanel
    #36441043
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоже вариант. Самый хардкорный правда.

З.Ы. Что есть ящик и где у него секции? :)

Я лублу C#
...
Рейтинг: 0 / 0
Жуткие тормоза в TableLayoutPanel
    #36441090
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychikтоже вариант. Самый хардкорный правда.

З.Ы. Что есть ящик и где у него секции? :)

Я лублу C#
Ну это уже к предметной области имеет отношение.
Полка на складе, ящик на полке, секция в ящике, болтик в секции.
Управление автоматическим складом - в частности, секции надо показывать кладовщику с указанием откуда и сколько штук брать - чтобы укомплектовать конкретный заказ.
соответственно - принцип разбивки ящика - это часть логистики склада.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Жуткие тормоза в TableLayoutPanel
    #38941498
igen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никакого WPF не надо и даже DoubleBuffered - просто вешаете обработчики на события начала/окончания изменения размеров формы:
Код: c#
1.
2.
3.
4.
5.
6.
private void MainForm_ResizeBegin(object sender, EventArgs e) {
	this.SuspendLayout();
}
private void MainForm_ResizeEnd(object sender, EventArgs e) {
	this.ResumeLayout();
}
...
Рейтинг: 0 / 0
Жуткие тормоза в TableLayoutPanel
    #38941503
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igenНикакого WPF не надо и даже DoubleBuffered - просто вешаете обработчики на события начала/окончания изменения размеров формы:
Код: c#
1.
2.
3.
4.
5.
6.
private void MainForm_ResizeBegin(object sender, EventArgs e) {
	this.SuspendLayout();
}
private void MainForm_ResizeEnd(object sender, EventArgs e) {
	this.ResumeLayout();
}



Ну мне пробовать уже негде, я в той фирме уже не работаю, но еще помню, что интересен был как раз процесс перерисовки во время изменения размера формы - тянешь мышкой за уголок, и все перерисовывается на новый размер.
(А не "все замерло, тащим мышкой угол - отпустили, все отрисовалось")
:-)
...
Рейтинг: 0 / 0
Жуткие тормоза в TableLayoutPanel
    #38941528
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, есть такая проблема.
Т.е. у меня например сделан Background градиентом, поверх понакидан рисунок, ваш этот TableLayoutPanel в нем этак с десяток Lable. При ресайзе градиент перерисовывается, TableLayoutPanel ездит согласно макету. Мерцание сильное, границы Label - стробоскопическим эффектом, особенно заметно на XP, в .Net 4.5 вроде этот эффект меньше чем в .Net 2, не уверен. Пока забил, но потом видимо буду переделывать аккуратно без стрипов.

igen,
Ваш метод конечно интересен, заинтересовало - попробовал,
но да, интересна качественная непрерывная перерисовка, а не замораживание.
И потом он работает только для Form целиком, т.е. нельзя его применить к отдельно взятой Panel, а это уже ни в какие ворота.

Мне больше нравится как в 2003-м сервере: не непрерывная перерисовка, а ездит палка-"сплиттер", а потом все взяло и туда разом переехало (качественно и экономично). В 2003-м это по дефолту,в XP это точно настраивается, настраивается ли в новых не знаю. Но по любому это настройки OS, а не проги, не будешь же юзеру его кастомизацию системы ломать ради своей проги.
...
Рейтинг: 0 / 0
Жуткие тормоза в TableLayoutPanel
    #38941541
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Да, есть такая проблема..

А я вот тему про альтернативную технологию почитываю - там вот только вопросы как привязать, как правильно скомпоновать (сугубо бизнес требования) - а не "как изнасиловать Winform, чтобы было как в WPF"
:-)))))))))

Есть такая тема (на других форумах) - ружья для подводной охоты, так там два направления - арбалеты и пневматы.
В обсуждении арбалетов - главная тема - какой точнее бьет, какая цена - в теме же про пневматы - сломался, как починить, где купить поршень-клапан ....
...
Рейтинг: 0 / 0
Жуткие тормоза в TableLayoutPanel
    #38943103
Poke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы просто обрабатывал Form.Layout - расчёт несложный, зато легковесно и быстро!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Жуткие тормоза в TableLayoutPanel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]