|
Just Do It!
|
||||||
[РЕФАКТ] Control.Controls сделать внутри Swap31.05.2022, 22:38. Показов 1859. Ответов 15
Задача проще не куда:
нужно сделать свап внутри Control.Controls, но не тут то было... как оказалось, Control.Controls не позволяет присваивать значения(по всему под капотом там указатели) контролов и отсюда мои "мучения". фишка моя в том, что я не горожу дополнительные вспомогательные массивы в контексте задачи и хочу обходиться тем, что уже есть внутри Forms, поэтому получился вот такой страшненький кот:
мне пришлось ТРИ раза пройтись по Control.Controls ещё неприятный артифакт - вздрагивание(или моргание) всех котролов(там у мя PictureBox) при клике для свапа. А как, всё-таки, сделать правильно?
0
|
||||||
| 31.05.2022, 22:38 | |
|
Ответы с готовыми решениями:
15
foreach(Control x in this.Controls) How programatically disable all controls within frame without actually specifying each control name? Использование std::swap() вместо friend swap() при реализации Copy&Swap в современном С++ |
|
2394 / 1923 / 763
Регистрация: 27.07.2012
Сообщений: 5,567
|
||
| 31.05.2022, 23:06 | ||
|
1
|
||
|
Just Do It!
|
|||
| 31.05.2022, 23:18 [ТС] | |||
|
в плане смысла будет достаточно поменять актуальные свойства внутри контролов, пожалуй это самое само собой напрашивающееся решение. но а если контролы разнотипные? что то типа аля STL для некого множества задач схожего типа...
0
|
|||
|
2394 / 1923 / 763
Регистрация: 27.07.2012
Сообщений: 5,567
|
||
| 31.05.2022, 23:28 | ||
|
1
|
||
|
Just Do It!
|
||||||||||||
| 01.06.2022, 08:05 [ТС] | ||||||||||||
Добавлено через 11 минуту Пытаюсь красиво засвапить свойства контролов:
Формокодеры, как вы с этим живёте?
0
|
||||||||||||
|
Just Do It!
|
||||||
| 01.06.2022, 10:21 [ТС] | ||||||
|
Итого: под задачу всё свелось к такому коду:
но зато перестало моргать, а это дорого стоит) этот кусочек задачи выглядит так:
0
|
||||||
|
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
| 01.06.2022, 10:32 | |
Сообщение было отмечено XLAT как решение
Решение
XLAT, методы RemoveAt и Insert ты не рассматривал?
1
|
|
|
1168 / 886 / 517
Регистрация: 09.04.2014
Сообщений: 2,101
|
|
| 01.06.2022, 10:37 | |
Сообщение было отмечено XLAT как решение
Решение
а чтобы не моргало - SuspendLayout()/ResumeLayout()
1
|
|
|
Just Do It!
|
|||
| 01.06.2022, 11:50 [ТС] | |||
|
для Control.Control метод RemoveAt есть и работает, а вот Insert для IList который реализует тот же Control.Control отсутствует. поэтому надо бы как то запретить перерисовку на время переупорядочивания контролов. почитал доку, как SuspendLayout()/ResumeLayout()работает всё ясно и понятно) добавил в обработку клика на всякий случай))
0
|
|||
|
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
| 01.06.2022, 12:23 | |
|
А это что? iList.Insert
0
|
|
|
Just Do It!
|
|||||||
| 01.06.2022, 12:57 [ТС] | |||||||
|
т.е. выше я хотел написать, что iList не реализован или реализован не полностью для Control.Controls Итого текущая, имхо, лучшая версия:
считаю, что рефакторинг удался. Спасибо за помощь!
0
|
|||||||
|
Just Do It!
|
|||||||
| 01.06.2022, 13:25 [ТС] | |||||||
что касаемо свойства Left, то предположу, что оно есть у всех контролов, в любом случае, в отображаемых, для которых, собсно, и предназначается этот метод. а ваще, конешъ, туда лямбду о позиционировании надо бы передавать))
0
|
|||||||
|
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
| 01.06.2022, 13:39 | |
|
0
|
|
|
Just Do It!
|
|||||||||||||||||
| 01.06.2022, 15:42 [ТС] | |||||||||||||||||
insert(i, a)
0
|
|||||||||||||||||
|
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
| 01.06.2022, 15:52 | |
|
XLAT, там не дженерик
0
|
|
|
Just Do It!
|
||||||||||||
| 01.06.2022, 16:29 [ТС] | ||||||||||||
0
|
||||||||||||
| 01.06.2022, 16:29 | |
|
Помогаю со студенческими работами здесь
16
Control array: как динамически создавать controls ? Вызов Controls из .dll Library (from Custom SelfMade Control) Control внутри Popup
Ошибка: Window does not contain a definition for 'Controls' and no extension method 'Controls' Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
|
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит значение перечислений.
/ / Событие "НачалоВыбора" реквизита на форме. . .
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|