Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Классы

Автор: Unknown 28.08.2008 0:08

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

Код
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 28.08.2008 18:14

Разобрался вроде...
Если кому интересно, надо было лишь передать текстбокс в качестве параметра методу второго класса:

Код
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";
        }
    }