IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Классы, С#
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 104
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Имеются два класса: один из них - стандартная форма с текстбоксом на ней. Вопрос: как из второго класса поменять текст текстбокса?

Код
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Customer c = new Customer();
            c.qwerty();
        }

        public void prnt(string s1)
        {
            textBox1.Text = s1;
        }

        public static string s;
    }
        
    public class Customer
    {
        public void qwerty()
        {
            Form1.s = "asdf";
            Form1.prnt(Form1.s);
        }
    }


Как я понял, получить доступ к текстбоксу можно только из самого класса Form1, так? тогда необходимо написать public метод, позволяющий менять текстбокс. Но чтобы из другого класса обратиться к этому методу, нужно, чтобы метод был либо статичным, либо обращаться не к классу, а к экземпляру класса. Но статичный метод не захочет работать с нестатичным текстбоксом, а создавать экземпляр класса Form1 смысла нет. Как быть?


--------------------
go ask Alice
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Разобрался вроде...
Если кому интересно, надо было лишь передать текстбокс в качестве параметра методу второго класса:
Код
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Customer c = new Customer();
            c.qwerty(textBox1);
        }
    }
        
    public class Customer
    {
        public void qwerty(TextBox tb)
        {
            tb.Text = "123";
        }
    }
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.10.2020 13:03
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name