Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > ФОРМА


Автор: arkonst 13.5.2008, 17:31
Подскажите,каким образом можно передать переменную в форму созданную по нажатию click

что-то в этом роде
Код

private void Indication40_Click(object sender, EventArgs e)
        {
            Form23 form23 = new Form23();
            form23.ShowDialog();  
        }


При нажатии на текстбокс создаеться форма23.

Мне же нужно чтоб при нажатии на ОПРЕДЕЛЕННЫЙ текстбокс в заранее заготовленную форму посылалась определенная переменная и дальше эта переменная в коде формы уже участвовала в обработке данных.

Если короче,то мне нужно просто в одну форму подставлять разные значения переменной.

Это мне нужно для того чтобы не плодить кучу одинаковых форм в которых отличие лишь в значении одной переменной.

Подскажите как быть.

Автор: -Mikle- 13.5.2008, 17:42
Можешь объявить в form23 переменную public, но лучше объяви свойство.
Ниже пример объявления свойства типа string с именем YourVar:
Код

class form23 : Form
{
    // ..................

    string _yourvar;
    public string YourVar
    {
        get { return _yourvar; }
        set { _yourvar = value; }
    }

    // ..................
}


Используешь так:
Код

private void Indication40_Click(object sender, EventArgs e)
        {
            Form23 form23 = new Form23();
            form23.YourVar = "Мое значение номер один";
            form23.ShowDialog();  
        }

Автор: arkonst 13.5.2008, 18:04
Наверно приблизительно так я и делал

Код

private void Indication40_Click(object sender, EventArgs e)
        {
            Form23 form23 = new Form23();
            form23.st = 55;
            form23.ShowDialog();  
        }



затем в форме
Код

public partial class Form23 : Form
    {
        
        public ushort x;
        public ushort st;
        Form1 click = new Form1();
        public Form23()
        {
            InitializeComponent();
        }

        private void button44_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void button43_Click(object sender, EventArgs e)
        {
            
            x = Convert.ToUInt16(txtValue22.Text);
            click.WriteFunctionHolding(x, st);
            this.Close();
        }
    }



И при таком раскладе ничего не выходило....но get set у меня не было...может поэтому не получалось???

Автор: -Mikle- 13.5.2008, 18:31
Цитата(arkonst @  13.5.2008,  21:04 Найти цитируемый пост)
И при таком раскладе ничего не выходило....но get set у меня не было...может поэтому не получалось???


Нет, get и set тут ни причем... отличия есть, но в данном случае и так должно работать...
Чисто по синтаксису, все в порядке. А что именно не работает? И что такое это: Form1 click = new Form1();

Автор: Veitmen 14.5.2008, 06:01
Мда... Вот и спрашивается зачем создавать топик, вывешивать его в топ, если вопросы и так постоянно задают на эту тему...

Автор: arkonst 14.5.2008, 08:13
 Form1 click = new Form1(); Для того чтобы можно было обратиться к функции в коде формы1.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)