Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 28.04.2019
Сообщений: 118

UserControl передача информации

16.09.2019, 20:11. Показов 3064. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, как мне пользоваться информацией из Form в UserControl, и наоборот? (Нужно чтобы userControl видел все компоненты в Form, и я их мог вызывать, и обратно. Form и UserControl в одном проекте)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.09.2019, 20:11
Ответы с готовыми решениями:

Передача текста из UserControl
Нужно заменить/передать текст из UserControl в TextBox.Text на главную форму. Проблема в том что при передаче текста TextBox становится...

Передача данных из формы в usercontrol
Здравствуйте, помогите пожалуйста решить такую проблему. Есть две формы и usercontrol. На 1 форме создается строка в которую помещается...

Передача данных из UserControl в форму
Привет! Создал я UserControl: на панельке - одна кнопка, и все. Событие-клик я на нее навешиваю динамически. Есть форма, куда я...

10
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
16.09.2019, 20:24
Обычно необходимость запрашивать информацию из родительского контрола это индикатор плохого дизайна.
В таком случае лучше всего вообще не выделять UserControl.
Если все таки решил идти этим костыльным путем, то ничего сложного нет. В UserControl обьяви свойство с типом нужной формы и в конструкторе формы после вызова InitializeComponent присвой этому свойству this, т.е. ссылку на саму форму.
0
0 / 0 / 0
Регистрация: 28.04.2019
Сообщений: 118
16.09.2019, 20:54  [ТС]
nicolas2008, таки да, у меня в проге с интерфейсом - беда, ну, не то что беда, но много повторяющихся компонентов, с повторяющимися действиями. Можно пример объявы?
0
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
17.09.2019, 01:26
как то так

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public class MyUserControl: UserControl 
{
     public MyForm ParentForm { get; set; }
}
 
public partial class MyForm : Form 
{
     public MyForm()
    {
         InitializeComponent();
         this.myUserControl1.ParentForm = this; // предполагается, что myUserControl1 добавлен на форму через дизайнер
    }
}
0
0 / 0 / 0
Регистрация: 28.04.2019
Сообщений: 118
17.09.2019, 09:12  [ТС]
nicolas2008, Выбивает предупреждение :

"UserControl1.ParentForm" скрывает наследуемый член "ContainerControl.ParentForm". Если скрытие было намеренным, используйте ключевое слово new

И UserControl1 все так же не видит тех компонентов, которые есть на форме.
0
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
17.09.2019, 10:34
Не видит потому что добавляемые на форму компоненты по умолчанию private, нужно обозначить их все как public. Это можно сделать в дизайнере или в файле MyForm.Designer.cs
0
0 / 0 / 0
Регистрация: 28.04.2019
Сообщений: 118
17.09.2019, 11:33  [ТС]
nicolas2008, обозначил все компоненты как public, все равно говорит, что нету компонентов в текущем контексте

Добавлено через 9 минут
nicolas2008,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public partial class UserControl1 : UserControl
    {
        public Form1 ParentForm { get; set; }
        public UserControl1()
        {
            InitializeComponent();
        }
 
        private void Button19_Click_1(object sender, EventArgs e)
        {
            string q = textBox11.Text; //текст бокс есть в юзер контрол
            linkLabel2.Text = q; // нету в юзер контрол (ошибка)
            tabPage5.Text = q; // аналогично со вторым
 
 
            if (textBox11.Text == "")
            {
                textBox11.BackColor = Color.LightPink;
            }
            else
            {
                textBox10.BackColor = default; // нету в юзер
            }
        }
    }
}
код из userControl11

единственное что, у меня на форме и на контроле одинаковые по нумерации компоненты, например - что там, что там есть textBox11, и тд.
0
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
17.09.2019, 13:56
Лучший ответ Сообщение было отмечено ShaRaKos как решение

Решение

C#
1
ParentForm.linkLabel2.Text = q
Советую все же начать с основ ООП и языка c#. Потратишь несколько дней зато потом сэкономишь намного больше.
0
0 / 0 / 0
Регистрация: 28.04.2019
Сообщений: 118
17.09.2019, 16:20  [ТС]
nicolas2008, спасибо, что посоветуете, книгу или что то другое?
0
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
17.09.2019, 18:35
та тот же metanit вроде ничего https://metanit.com/sharp/tutorial/
тут еще ссылки на хорошую литературу Литература по C# для начинающих и не только
0
0 / 0 / 0
Регистрация: 28.04.2019
Сообщений: 118
17.09.2019, 20:38  [ТС]
nicolas2008, спасибо вам!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.09.2019, 20:38
Помогаю со студенческими работами здесь

Передача данных из формы в UserControl
Форма содержит массив объектов типа MyRoom. Надо создать UserControl, который будет содержать ListBox для отображения данных из массива,...

Как разместить UserControl поверх другого UserControl
Такая задача. Есть форма. На ней размещена панель panelRight. Также есть два пользовательских контрола (TimelineControl() и Bar()). Потом в...

Передача параметров между UserControl-ов
У меня в программе есть окно которое выводит UserControl авторизации таким образом: <Window.Resources> ...

Передача текстовой строки между UserControl и Классом
Не могли бы вы подсказать почему не выполняется код. Класс: class ClassLID { public static string sValue {...

Передача события (Event) между UserControl и Form
Ситуация такая: Делаю UserControl, из него вызывается форма Form. Вопрос: 1. Как передать в UserControl событие (RaiseEvent...) из...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта 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 позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru