Помощь - Поиск - Пользователи - Календарь
Полная версия: Классы
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Другие языки
Unknown
Имеются два класса: один из них - стандартная форма с текстбоксом на ней. Вопрос: как из второго класса поменять текст текстбокса?

Код
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 смысла нет. Как быть?
Unknown
Разобрался вроде...
Если кому интересно, надо было лишь передать текстбокс в качестве параметра методу второго класса:
Код
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";
        }
    }
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.