Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 25.02.2013
Сообщений: 5
1

Не работает доступ к контролу из другого класса

11.08.2014, 01:29. Показов 1312. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Итак, имею в Form1 функцию, которая добавляет в конец текстбокса заданный текст.
C#
1
2
3
4
5
6
7
public void Set_tb_Log(string newText)
        {
            if (tb_Log.InvokeRequired) tb_Log.Invoke(new Action<string>((s) => tb_Log.AppendText(s)), newText);
            else tb_Log.AppendText(newText);
            MessageBox.Show(newText);
 
        }

И имею другой класс, в котором запускается несколько потоков, каждый поток вызывает метод, из которого должен изменяться текстбокс при помощи предыдущей функций. Вот этот метод.

C#
1
2
3
4
5
6
7
8
9
10
private void Checking()
        {
            
            Form1 frm = new Form1();
            frm.Set_tb_Log("BlaBlaBla");
            while (true)
            {
                //blablabla
            }
        }
Суть в том, что если Set_tb_Log вызывается из этого метода, то операция с текстбоксом не совершается, ни ошибок, ничего, при этом MessageBox появляется как надо. Если же Set_tb_Log вызываеть из Form1, где он и находится, то все работает корректно. В чем загвоздка?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.08.2014, 01:29
Ответы с готовыми решениями:

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

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

Как получить доступ к контролу формы из другого класса, не создавая новый экземпляр формы
Как получить доступ к контролу формы из другого класса, не создавая новый экземпляр формы?

Доступ к контролу из другого потока
Что-то я не соображу, как в WPF из одного потока получить доступ к элементу другого: public...

3
8943 / 4855 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
11.08.2014, 01:50 2
Загвоздка в том, что метод ты вызываешь из нового экземпляра формы и к активной форме он не имеет отношения
0
0 / 0 / 0
Регистрация: 25.02.2013
Сообщений: 5
11.08.2014, 02:32  [ТС] 3
Спасибо, а как можно вызвать метод из активной формы, не могу найти.
0
8943 / 4855 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
11.08.2014, 05:47 4
Нужно передать в класс, где находится метод Checking, ссылку на активную форму. Через конструктор или статический класс.
Или использовать делегат из статического класса, чтобы хранить в нём ссылку на метод из формы. Это будет самый правильный способ. Пример не напишу, т.к. далеко от компа
1
11.08.2014, 05:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.08.2014, 05:47
Помогаю со студенческими работами здесь

Обращение к контролу из другого класса
как из своего класса обратится к контролу базового? public partial class MainPage : UserControl...

Доступ к GUI из другого класса. Работает странно
Приветствую. Есть графический интерфейс, с формой page.ui. На ней есть например виджет Label. в...

Доступ к контролу формы из написанного класса
Добрый вечер, помогите пож-та решить проблему: хочу иметь возможность рисовать на PictureBox из...

Разрешить доступ к методу класса только для другого класса
Здравствуйте, нужно что бы у Item ссылка на Box была только для чтения, но при добавлении Item в...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru