Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
27 / 27 / 8
Регистрация: 30.03.2010
Сообщений: 380
Записей в блоге: 1

Доступ к контроллу из другого класса

05.05.2015, 23:55. Показов 985. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Понимаю что тема заезжанная, но я так и не понял какой способ лучше, работает хорошо и не нарушает правил ООП

Хочу в листбокс, который находится на главной форме, добавлять значения из разных классов, создавать новый экземпляр формы я думаю не вариант, подскажите пожалуйста как сделать?))
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.05.2015, 23:55
Ответы с готовыми решениями:

Доступ к элементам и методам класса из другого класса
Пишу и понимаю, что создаю, наверняка, давно избитую тему, но вот уже второй день пытаюсь найти решение... Есть несколько классов с...

Доступ к контролу из другого класса
Всем привет. Что-то я адцки туплю и не могу сотворить простую вещь. Есть форма. На форме есть datagridview - dtgMain. Модификатор...

Доступ к контролу из другого класса
Не могу добиться изменение состояния контекстного меню, мне надо чтобы при щелчке правой кнопки мышки на форме открывалось контекстное...

11
Заблокирован
06.05.2015, 07:46
Цитата Сообщение от bupal Посмотреть сообщение
Хочу в листбокс, который находится на главной форме, добавлять значения из разных классов, создавать новый экземпляр формы я думаю не вариант, подскажите пожалуйста как сделать?))
bupal, зачем вам это понадобилось?
0
27 / 27 / 8
Регистрация: 30.03.2010
Сообщений: 380
Записей в блоге: 1
06.05.2015, 14:52  [ТС]
Ev_Hyper, затем, что данные, которые туда добавляются, находятся в разных классах
0
Заблокирован
06.05.2015, 15:21
Цитата Сообщение от bupal Посмотреть сообщение
Ev_Hyper, затем, что данные, которые туда добавляются, находятся в разных классах
bupal, лучше возвращать какие-то данные из классов и их добавлять.
0
27 / 27 / 8
Регистрация: 30.03.2010
Сообщений: 380
Записей в блоге: 1
06.05.2015, 15:38  [ТС]
эти классы не заканчивают свою работу после получения этих данных, они постоянно работают
и вызываются не все из основной формы
0
117 / 118 / 52
Регистрация: 19.12.2014
Сообщений: 612
06.05.2015, 16:53
bupal, насколько я помню, методы класса можно вызывать из любой формы
0
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
06.05.2015, 16:57
C#
1
2
3
4
5
6
7
        public void GNSS_speed(float val)
        {
            this.Invoke(new Action(() =>
            {
                label_speed_vis.Text = speed_gps.ToString() + " " + lng.str_l_m_sek;
            }));
        }
Это хотели?
0
1168 / 886 / 517
Регистрация: 09.04.2014
Сообщений: 2,102
06.05.2015, 17:46
Цитата Сообщение от bupal Посмотреть сообщение
Хочу в листбокс, который находится на главной форме, добавлять значения из разных классов,
передавайте данные с помощью событий
0
27 / 27 / 8
Регистрация: 30.03.2010
Сообщений: 380
Записей в блоге: 1
06.05.2015, 18:06  [ТС]
nedel, можно подробнее?
0
1168 / 886 / 517
Регистрация: 09.04.2014
Сообщений: 2,102
06.05.2015, 18:26
Цитата Сообщение от bupal Посмотреть сообщение
можно подробнее?
как-то так:

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
class MyForm : Form
    {
        ................
        void button1_Click(object sender, EventArgs e)
        {
            System.Threading.ThreadPool.QueueUserWorkItem(StartJob);
        }
        void StartJob(object x)
        {
            MyWorkerClass worker = new MyWorkerClass();
            worker.DataObtained += worker_DataObtained;
            worker.DoSomeWork();
        }
 
        void worker_DataObtained(object sender, MyDataArgs e)
        {
            if (InvokeRequired)
            {
                BeginInvoke(new EventHandler<MyDataArgs>(worker_DataObtained), sender, e);
                return;
            }
            listBox1.Items.Add(e.Data);
        }
    }
    class MyWorkerClass
    {
        public void DoSomeWork()
        {
            for (int i = 0; i < 10; i++)
            {
                OnDataObtained(string.Format("new data {0}", i));
            }
        }
        void OnDataObtained(string data)
        {
            if(DataObtained!=null)
                DataObtained(this, new MyDataArgs(data));
        }
        public event EventHandler<MyDataArgs> DataObtained;
    }
    class MyDataArgs:EventArgs
    {
        public MyDataArgs(string data)
        {
            Data=data;
        }
        public string Data
        {
            get;
            private set;
        }
 
    }
0
27 / 27 / 8
Регистрация: 30.03.2010
Сообщений: 380
Записей в блоге: 1
06.05.2015, 21:32  [ТС]
Решил сделать так:
В главной форме, при инициализации прописал:
C#
1
мойкласс.listBox = this.listBox;
В классе мойкласс создал переменную listBox, куда передаётся текущий листбокс из главной формы, и далее, когда мне нужно добавить что то в листбокс, то я вызываю функцию, которая внутри класса мойкласс, в которую передаю текст для добавления.

Хочу узнать кто что думает по поводу такого способа?..насколько он хорошо или плох.. хочу увидеть дельные комментарии
0
Заблокирован
06.05.2015, 21:39
Цитата Сообщение от bupal Посмотреть сообщение
В классе мойкласс создал переменную listBox, куда передаётся текущий листбокс из главной формы, и далее, когда мне нужно добавить что то в листбокс, то я вызываю функцию, которая внутри класса мойкласс, в которую передаю текст для добавления.
bupal, Получается, что куча объектов разных классов имеют доступ к элементу, который служит только для отображения информации. Вариант с событиями, на мой взгляд, намного лучше.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.05.2015, 21:39
Помогаю со студенческими работами здесь

Доступ к данным из другого класса
Добрый день! Пишу чат клиент сервер. Нужен доступ к Label из другого класса. В классе ClientObject.cs создается сокет для подключения...

Доступ к элементам формы из другого класса
Приветствую, в классе Form1.cs находятся элементы формы. Так же есть класс Doing.cs, в котором находится код для взаимодействия с...

Доступ к элементам WinForm из другого класса
Здравствуйте, вопрос. Получаю доступ к элементу формы (richTextBox), но не могу вывести в нём текст. Так вообще можно делать? Код одной...

Доступ к объектам формы из другого класса
Есть Form1 на ней есть label, так же есть отдельный класс Class1 в нём есть метод V который меняет текст в label, как из Class1 поменять...

Доступ к элементам формы из другого класса
День добрый! Подобных вопросов на форумах куча, но я так и не могу дойти до истины. Вот есть у меня форма FormA с текстбоксами. Есть...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru