Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Windows Forms
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2016, 09:27   #1
l_cho
 
Регистрация: 10.10.2016
Сообщений: 6
По умолчанию Обратится к label из другого класса

Добрый день!
Прошу помочь, как обратится у другого класса к форме и ее члену label1.
Как делаю:
В Designer.cs public System.Windows.Forms.Label label1;

Новый элемент класс Class1 в нем:
Код:
class Class1
    {
        public void FormMy()
        {
            Form1 fr = new Form1();
            fr.label1.Text = "GooD";
        }
    }
Из класса class Form1 вызываю так :
Код:
 private void button1_Click(object sender, EventArgs e)
        {
            Class1 Cl1 = new Class1();
            Cl1.FormMy();
        }
Потратил уже две недели но не как не могу понять истины) Прошу помочь(
l_cho вне форума Ответить с цитированием
Старый 10.10.2016, 09:34   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от l_cho Посмотреть сообщение
Потратил уже две недели но не как не могу понять истины
Что вы делали эти 2 недели?oO За 2 недели можно было 10 раз осилить основы C# в любом учебнике и узнать например про параметры функций/конструкторов, public/private и т.п.

Например добавить в форму функцию типа
Код:
public void SetStatus(string newStatus)
{
    lblStatus.Text = newStatus;
}
и вы в своем классе создаете новый экземпляр формы, а не используете существующий.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.10.2016, 10:07   #3
l_cho
 
Регистрация: 10.10.2016
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Что вы делали эти 2 недели?oO За 2 недели можно было 10 раз осилить основы C# в любом учебнике и узнать например про параметры функций/конструкторов, public/private и т.п.

Например добавить в форму функцию типа
Код:
public void SetStatus(string newStatus)
{
    lblStatus.Text = newStatus;
}
и вы в своем классе создаете новый экземпляр формы, а не используете существующий.
А как тогда обратится из нового класса к данной функции?
l_cho вне форума Ответить с цитированием
Старый 10.10.2016, 10:12   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Взять откуда-то (например передать в конструктор класса) экземпляр формы и вызвать функцию.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.10.2016, 21:03   #5
l_cho
 
Регистрация: 10.10.2016
Сообщений: 6
По умолчанию

Сделал так но не работает((( Прошу помочь, что делаю не так
Долгожданное Yessssss не выходит ((((

Код:
class Class1
    {
        private Form1 delForm1;
        public void Form2(Form1 delForm1)
        {
            this.delForm1 = delForm1;
        }

        public void Foo()
        {
            delForm1.ChangeText("Yessss!!!");
        }

    }

public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();
        }

        public void ChangeText(string text)
        {
            label1.Text = text;
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            Class1 Cs1 = new Class1();
            
        }

    }
______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.

Последний раз редактировалось Alex11223; 10.10.2016 в 21:13.
l_cho вне форума Ответить с цитированием
Старый 10.10.2016, 21:17   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А с чего он должен выводиться? Вы написали Class1 с функциями Form2 и Foo, в button1_Click создали экземпляр этого класса вызвав его конструктор по умолчанию (пустой, генерируется по умолчанию если в классе нет конструкторов).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.10.2016, 21:37   #7
l_cho
 
Регистрация: 10.10.2016
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
А с чего он должен выводиться? Вы написали Class1 с функциями Form2 и Foo, в button1_Click создали экземпляр этого класса вызвав его конструктор по умолчанию (пустой, генерируется по умолчанию если в классе нет конструкторов).
Спасибо, напишу конструктор
l_cho вне форума Ответить с цитированием
Старый 12.10.2016, 15:55   #8
l_cho
 
Регистрация: 10.10.2016
Сообщений: 6
По умолчанию

Добрый день! Сдедал так :
но не знаю как передать ссылку на Form1 ?

Код:
namespace ClassInClass
{
    class Class1
    {
    public Class1(Form1 Fm1)
        {
            Fm1.label1.Text = "G00D";
        }
    }
}
Код:
namespace ClassInClass
{
    public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();
        }

        public void ChangeText(string text)
        {
            this.label1.Text = text;
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            Class1 Cls1 = new Class1(???Form1???);//Как передать ссылку на Form1 ?
        }

    }
}

Последний раз редактировалось l_cho; 12.10.2016 в 15:57.
l_cho вне форума Ответить с цитированием
Старый 12.10.2016, 16:01   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

this
https://msdn.microsoft.com/en-us/lib...or=-2147217396
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.10.2016, 21:09   #10
l_cho
 
Регистрация: 10.10.2016
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Невероятно и непонятно, как передать ссылку на другой класс в консольном варианте я понял. Проблема конкретно с Form1 - класс, как его передать(
l_cho вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение текста Label из другого класса IonGig C# (си шарп) 13 31.05.2016 14:22
Вызов функции из одного класса кнопкой из другого класса lexflax Qt и кроссплатформенное программирование С/С++ 1 12.12.2014 21:48
Доступ к полю класса из другого поля это класса NaumOff Общие вопросы Delphi 10 09.10.2012 09:53
Конструктор класса не хочет принимать в качестве параметра адрес объекта другого класса Jugger Помощь студентам 3 05.01.2012 04:10
Если в классе объявить объект другого класса,будет ли видно переменные первого класса из объекта второго? TwiX Общие вопросы Delphi 3 15.11.2009 00:54