|
2 / 2 / 0
Регистрация: 11.05.2011
Сообщений: 131
|
|||||||||||
Как работать с динамически созданным контролом01.11.2012, 01:42. Показов 3290. Ответов 9
Метки нет (Все метки)
Возник такой вопрос.
Создал кодом checkbox, вот класс который этим занимается:
PS Я не опытный, поэтому сильно не обращайте внимание на кривую реализацию класса (я не против конструктивной критики. Но это второстепенно).
0
|
|||||||||||
| 01.11.2012, 01:42 | |
|
Ответы с готовыми решениями:
9
Как обратиться к динамически созданным контроллам Как обращаться к динамически созданным TextBox на Panel
|
|
15 / 15 / 3
Регистрация: 27.11.2011
Сообщений: 63
|
|||||||||||||||||||||
| 01.11.2012, 10:38 | |||||||||||||||||||||
|
Ты создал объект cont - экземпляр класса Control. Этот класс наследует явную реализацию интерфейса IContainer от класса Container. Но это дебри. В общем это значит, что этот объект может логически(!!!) иметь список подчиненных элементов, в нашем случае объектов типа Control. Так вот. В коде ты как раз и создал такой контейнер, логически подцепив к нему ckbx. После создания экземпляра класса CreateControls, можешь смело обращаться к его полю (сделай его public) cont. То бишь:
![]() з.ы.ы. необязательно инициализировать сразу
можно в конструкторе,и, наверное, так будет правильнее:
1
|
|||||||||||||||||||||
|
2 / 2 / 0
Регистрация: 11.05.2011
Сообщений: 131
|
||||||||||||
| 01.11.2012, 22:26 [ТС] | ||||||||||||
|
Привожу объект к checkbox вот этим кодом
Я сделал его public вот так:
0
|
||||||||||||
|
15 / 15 / 3
Регистрация: 27.11.2011
Сообщений: 63
|
||||||||||||||||||||||||||
| 01.11.2012, 23:02 | ||||||||||||||||||||||||||
|
Сначала про инициализацию контрола в классе CreateControls.
Смотри, ты при инициализации класса(сиречь типа) в строке
Теперь про событие. Вот ты привел этот контрол к типу CheckBox. Теперь можно навешивать обработчики на события. Что-то вроде:
з.ы.Сорри за возможные синтаксические ошибки в коде, писал прям тут. з.ы.ы. Почитай про события и делегаты, вникни как следует, это в разы облегчит понимание.
0
|
||||||||||||||||||||||||||
|
2 / 2 / 0
Регистрация: 11.05.2011
Сообщений: 131
|
|
| 01.11.2012, 23:39 [ТС] | |
|
Ясно, спасибо.
А есть способ более правильно и эффективно создавать контролы? Добавлено через 8 минут И будет ли толк от этого, если сделать метод CreateCheckBox(); не void, а CheckBox?
0
|
|
|
15 / 15 / 3
Регистрация: 27.11.2011
Сообщений: 63
|
|
| 01.11.2012, 23:44 | |
|
На самом деле да. Класс UserControl специально создан для таких целей. И еще, есть библиотеки DevExpress, они платные, но там уже готовых конторлов на любой специфический вкус припасено
![]() Толк будет, если тебе такое нужно. Это уже наверное ближе к разряду "стиль программирования", так что тут однозначного ответа правильно-неправильно нет.
1
|
|
|
2 / 2 / 0
Регистрация: 11.05.2011
Сообщений: 131
|
|
| 02.11.2012, 01:18 [ТС] | |
|
Ну, основная цель у меня была- это создать чекбокс (кодом), который не будет отличатся от созданного в графическом редакторе и пользоваться им так же легко как и обычным...
0
|
|
|
15 / 15 / 3
Регистрация: 27.11.2011
Сообщений: 63
|
||
| 02.11.2012, 19:08 | ||
|
0
|
||
|
2 / 2 / 0
Регистрация: 11.05.2011
Сообщений: 131
|
|
| 02.11.2012, 23:57 [ТС] | |
|
0
|
|
|
15 / 15 / 3
Регистрация: 27.11.2011
Сообщений: 63
|
|
| 03.11.2012, 00:37 | |
|
Так разницы абсолютно никакой. Когда создается форма(дизайнером), класс формы делится на партиалы(сиречь части) и раскидывается по двум файлам. Файл [имя_формы].Designer.cs парсится дизайнером и дает возможность накидать все ручками. Да, может хардкорные С++ -ки закидают меня помидорами и скажут, что это не тру, но все же это намного удобнее, если понимаешь, как все работает.
0
|
|
| 03.11.2012, 00:37 | |
|
Помогаю со студенческими работами здесь
10
Связать переменную с програмно созданным контролом
Как обращаться к динамически созданным кнопкам? Как работать с MultiPage контролом? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|