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

Изменить текст в Label

10.05.2013, 22:18. Показов 24800. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть форма из которой вызывается метод из класса Connekt
C#
1
2
3
4
5
6
 public void button_connekt_Click(object sender, EventArgs e)
        {
            Connekt.Konnekt(ip, port);  // вызов класса коннекта
            label_инфо.Text = "Соединение установлено";
            label_инфо.ForeColor = Color.Green;
        }
если соединение установлено то текст меняется... Теперь пытаюсь поменять текст в случае отсутствия соединения:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Connekt
    {
        public static NetworkStream Konnekt(string ip, int port)
        {
            try
            {
                TcpClient client = new TcpClient(ip, port);
                Form1.stream = client.GetStream();
 
                return Form1.stream;
            }
            finally
            {
                Form1.label_инфо = "Соединение не установлено";
                Form1.label_инфо.ForeColor = Color.Red;
            }
           
        }
    }
Но выдает ошибку..... Подскажите как менять текст в Lebel из другого класса?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.05.2013, 22:18
Ответы с готовыми решениями:

Изменить текст label, созданного динамически
Не понимаю как изменить , к примеру текст label1.. Я создал динамично label1 : Label label1 = new Label(); // Создание текста...

Как изменить текст в в label другой формы?
private void button1_Click(object sender, EventArgs e) { string n = ""; Form4 f4 = new...

Изменить текст и цвет label если в textbox стоит определённое количество символов
Ребят такая задача: Есть textBox и label. Нужно в зависимости от количества символов в textBox'е изменить текст и цвет label'a. Допустим...

7
47 / 18 / 4
Регистрация: 17.04.2013
Сообщений: 87
10.05.2013, 22:57
Странно, сделал тестовый проект, на нём создал Label с именем label_инфо и всё скомпилировалось.
Не буду анализировать весь представленный код, но сразу бросается в глаза ошибка:
Form1.label_инфо = "Соединение не установлено";
Form1.label_инфо.ForeColor = Color.Red;
Во втором случае Вы присваиваете что-то(цвет) свойству контрола, а в первом самому контролу.
Для присвоения текста требуется использование свойства Text:
C#
1
label_info.Text = "Соединение не установлено";
0
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
11.05.2013, 08:14  [ТС]
Цитата Сообщение от 4um Посмотреть сообщение
1
label_info.Text = "Соединение не установлено";
Ну да, это я просто не дописал. Дело в том что я пытаюсь записать не из другого класса. Если тоже самое пишу в в классе Form1 то все нормально.
0
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
12.05.2013, 19:17  [ТС]
Ошибка 1 Для нестатического поля, метода или свойства "WindowsFormsApplication1.Form1.labe l1" требуется ссылка на объект \WindowsFormsApplication1\Connect.cs 47 17 WindowsFormsApplication1

Вот что выдает....
0
Танцы с бубном
 Аватар для Lokko
68 / 69 / 26
Регистрация: 27.03.2013
Сообщений: 279
13.05.2013, 07:45
C#
1
this.label_info.Text = "Соединение не установлено";
?
0
 Аватар для Cupko
658 / 595 / 171
Регистрация: 17.07.2012
Сообщений: 1,682
Записей в блоге: 1
13.05.2013, 08:17
Вы обращаетесь к классу формы, а не к экземпляру.

Чтобы изменить текст label из другого класса, вам нужно:
Изменить область видимости label на public (internal) и обращаться к ней через экземпляр формы (что не совсем правильно с точки зрения ООП)
Либо создать свойство в форме, по типу
C#
1
2
3
4
5
public LabelText
{
get {return this.label.Text;}
set {this.label.Text = value;}
}
что более правильно с точки зрения ООП.
0
47 / 18 / 4
Регистрация: 17.04.2013
Сообщений: 87
13.05.2013, 08:23
eagl69 - Попробую исходить из того что Вы начинающий программист а не ...
Насколько я понял у Вас есть форма к которой подключается пользовательский класс Connekt (я опять-таки не берусь анализировать весь выложенный код).
Для того что-бы в коде класса можно было обращаться к любому объекту размещённому на форме необходимо этому объекту присвоить свойство public, а кроме того в код класса Connekt передать ссылку на форму Form1, например в конструкторе, как-то так:
C#
1
2
//Код в форме Form1
Connekt conn = new Connekt(this);
А в классе Connekt прописать:
C#
1
2
3
4
5
6
// Код в классе Connekt
private Form1 form1;
public Connekt(Form1 arg1)
{
    form1 = arg1;
}
И тогда в коде класса Connekt обращаясь к форме 1 как form1 Вы можете смело писать:
C#
1
2
form1.label_info.ForeColor = Color.Red;
form1.label_info.Text = "Соединение установлено";
И сделайте плиз функцию:
public static NetworkStream - public void NetworkStream
И ущё раз повторюсь что я не делал анализа всего кода так как большое сомнение вызывает конструкция try - finally.
0
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
14.05.2013, 09:39  [ТС]
Спасибо всем за проявленное внимание!

Но я все таки не разобрался.. вот накидал образец вроде как писал 4um но там 2 ошибки..... если не трудно объясните... прикрепил архив чтобы было понятней....

А вообще идея была такая: сервер посылает время от времени сообщения их надо отобразить... ну там обработать, это дело второе... и по нажатию кнопки отправлять серверу пакет... вроде ничего сложного.. в консоли работает.. хотел перенести на форму для наглядности.... вот в отображении я и застрял... Я так себе это представляю: 1 поток это прием пакета, 2 поток отправка, 3 поток формы с отображением принятых пакетов и с кнопками.....
Вложения
Тип файла: rar WindowsFormsApplication1.rar (38.3 Кб, 11 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.05.2013, 09:39
Помогаю со студенческими работами здесь

Не получается при закрытии формы 2 изменить текст label формы 1
Форма 1: private void Btn_Open_Form2_Click(object sender, EventArgs e) { Form2 forma2 = new Form2(); ...

Как программно изменить текст Label?
Имеется на страничке порядка пару сотен Label, примерно в 50 нужно изменить текст. почему когда меняю ID с Label1 на L1 то он не выпадает...

Перенести текст с одного label на label в другом окне
Как перенести текст с label одного окна в label другого окна? ссылка на гитхаб: https://github.com/tim-stark-m45/WPF_ViewTest

Изменить шрифт label
Здравствуйте, пытаюсь изменить шрифт Label, но возникает ошибка (на картинке), подчеркивает "Arial" Меню шрифт так: ...

Как по кнопке изменить текст Label
Здравствуйте, как это сделать MFC приложение?


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru