Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Просто интересуюсь.
 Аватар для Imitator
42 / 42 / 9
Регистрация: 19.10.2011
Сообщений: 247

Получить доступ к свойствам checkBox созданному программно

24.10.2012, 20:45. Показов 2782. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Подскажите пожалуйста, как можно получить доступ к свойствам checkBox-a созданному программно.
Подробности:
В цикле заполняется UniformGrid 10*10 checkBox-ами, т.е. их 100 штук.
Так вот мне нужно получить доступ к свойствам одного checkBox-a, по координатам UniformGrid.
Заранее спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.10.2012, 20:45
Ответы с готовыми решениями:

Получить доступ к динамически созданному TextBox
Как, используя Sender, получить ссылку на объект? (может и выразился неправильно) dim Pole(,) as TextBox Redim Pole(TBoxNum, i) ...

Получить доступ к динамически созданному контролу
При загрузке окна динамически создаю некоторое количество StackPanel(количество берется из бд), в каждой панели создается image, 2 label...

Как получить доступ к свойствам MultiPage?
Народ, если кто знает как с MultiPage обращаться ответьте. На нем всю форму нарисовал, а вот как получить доступ к свойствам эл.управления...

12
Просто интересуюсь.
 Аватар для Imitator
42 / 42 / 9
Регистрация: 19.10.2011
Сообщений: 247
25.10.2012, 22:05  [ТС]
Вопрос решил следующим образом. Создал коллекцию List<ChekBox> в которую записал все созданные программно checkBox и простым перебором коллекции нахожу нужный.
Но не уверен, что мой способ единственно верный... Если кто сталкивался может отпишитесь?
0
55 / 55 / 5
Регистрация: 09.06.2011
Сообщений: 207
26.10.2012, 19:19
А какой смысл засорять память ненужным ListBox'ом, если UniformGrid.Children - это и так коллекция? Перебирайте сразу коллекцию UniformGrid.Children.
1
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
26.10.2012, 19:55
Urs, от лишнийх 400 байт памяти хуже не будет, если учесть, что wpf жрет по 50мб, зато есть удобный способ обращаться по индексу.


Imitator, создай массив 10х10, например я делаю так (у меня одномерный, но никто не мешает тебе сделать двумерный):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private Button[] _buttons;
 
private void InitializeButtons()
        {
            const int n = 4;
            _buttons = new Button[n];
            for (int i = 0; i < n; i++)
            {
                _buttons[i] = new Button
                {
                    Style = (Style)FindResource("ButtonStyle"),
                    Visibility = Visibility.Hidden,
                    Tag = (char)('A' + i) + ":"
                };
                _buttons[i].Click += ButtonClick;
                ButtonGrid.Children.Add(_buttons[i]);
            }
        }
и потом обращаешься
C#
1
_buttons[RightId].Content = RightAnswer;
0
Просто интересуюсь.
 Аватар для Imitator
42 / 42 / 9
Регистрация: 19.10.2011
Сообщений: 247
26.10.2012, 20:01  [ТС]
Действительно! Все так-же работает!)) Спасибо
0
55 / 55 / 5
Регистрация: 09.06.2011
Сообщений: 207
27.10.2012, 00:16
Цитата Сообщение от Psilon Посмотреть сообщение
Urs, от лишнийх 400 байт памяти хуже не будет, если учесть, что wpf жрет по 50мб, зато есть удобный способ обращаться по индексу.
Будет хуже для читабельности кода. Потом, если можно обойтись без привлечения лишних Классов в программировании, то зачем усложнять себе жизнь?

Нужно получить Чекбокс по индексу? Да пожалуйста:

VB.NET
1
UniformGrid.Children(i)
Где i - это и есть индекс. И не нужно городить весь этот огород с массивами, засоряя мозги и себе и компьютеру.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
27.10.2012, 00:48
Urs,
Будет хуже для читабельности кода.
в каком месте? Если я вижу массив _buttons[], я сразу понимаю, что имеется ввиду, причем если я изменю имя контрола или сам контрол заменю, логика взаимодействия меняться не будет, только в одном месте напишу вместо
C#
1
UniformGrid.Children.Add(button);
какой-нибудь
C#
1
StackPanel.Children.Add(button);
причем весь код, который с этими кнопками работает, будет работать именно с массивом и в переписывании не будет нуждаться. Я не говорю, что этот подход лучше, но он в любом случае не хуже. В моем случае всего 4 конпки, значит будет в худшем случае 4 лишних указателя, это лишних 4*8=32 байта памяти, какой кошмар...

к тому же насколько я понимаю, Children это список, а не массив,а значит, матрицу в ней закодировать будет затруднительно, так как мультисписки неудобны в использовании, а эмулировать мне чисто лень, если можно сделать по-человечески. В чем же я неправ?
0
55 / 55 / 5
Регистрация: 09.06.2011
Сообщений: 207
27.10.2012, 01:01
Ой, да причём здесь матрицы? Уважаемый топикстартер Imitator поставил задачу: ему необходимо обратиться к свойствам контрола, который уже находится в UniformGrid. Для этого не нужно создавать никаких дополнительных массивов. Достаточно обратиться к коллекции, в которой этот контрол уже находится. Т.е., обратиться к коллекции UniformGrid.Children. И всё, задача решена! А Вы пытаетесь ему предложить реализацию какой-то собственной задачи, которая к его задаче не имеет никакого отношения.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
27.10.2012, 01:11
Urs, если у человека 10х10 и он обращается по двухиндексной системе, то использование списка нелогично. Не согласны?..
0
55 / 55 / 5
Регистрация: 09.06.2011
Сообщений: 207
27.10.2012, 01:20
Не забудьте, что Grid - это коллекция строк (Row), в каждой из которых есть колонки (Columns). Таким образом - это уже не одномерный массив.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
27.10.2012, 01:27
Urs, надо будет поплотнее поработать с обоими вариантами чтобы сделать вывод. А пока что недостаточно данных. Поэтому спор прекращаю.
0
55 / 55 / 5
Регистрация: 09.06.2011
Сообщений: 207
27.10.2012, 01:33
Да тут и спорить нечего! У Вас уже есть готовый массив данных (Grid), а Вы зачем-то дополняете его бесполезным клоном в виде массива кнопок. Просто обращайтесь напрямую к Вашему Grid (или UniformGrid), и извлекайте из него все необходимые данные. Не усложняйте себе жизнь!
0
Просто интересуюсь.
 Аватар для Imitator
42 / 42 / 9
Регистрация: 19.10.2011
Сообщений: 247
27.10.2012, 03:51  [ТС]
Оба способа имеют право быть!))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.10.2012, 03:51
Помогаю со студенческими работами здесь

Как получить доступ к свойствам help button?
Help Button. Как получить доступ к её свойствам? Мне необходимо всё выставить. Что будет происходить, когда жмёшь на неё, как она должна...

Как получить доступ к свойствам кнопки?
Как получить доступ к свойствам кнопки? в объекте INPUT TYPE=file Необходимо изменить ее название. Текже, хотелось бы установить фильтр...

Получить доступ к свойствам объектов из базы
У меня есть таблица, в которой записаны объекты, содержащие некоторые свойства. Я указал для dropdownlist, что в качестве содержимого, хочу...

Как получить доступ к объекту, созданному в другой форме?
Я создал два окна, MainForm и FormInfo. В классе MainForm создаётся объект типа WindowsMediaPlayer. И мне нужно сделать так, чтобы такая...

Как получить доступ к динамически созданному элементу по имени?
Здравствуйте!!! Подскажите как получить доступ к элементу который был создан во время работы программы. Например была создана ссылка....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru