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

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

24.10.2012, 20:45. Показов 2761. Ответов 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
6101 / 4957 / 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
6101 / 4957 / 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
6101 / 4957 / 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
6101 / 4957 / 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
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru