Передача данных с Class в Form2 и обратно

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by stas1kus, 11 Jul 2014.

  1. stas1kus

    stas1kus New Member

    Joined:
    25 Jun 2012
    Messages:
    33
    Likes Received:
    4
    Reputations:
    0
    Доброго времени....
    Не судите сразу по топику передавать с Class'a to Form2 я могу, но единственное что, не получается передать данные обратно с Form2 to NetClass. В общем суть такова, у меня есть NetClass который при определенном моменте вызывает эту Form2, туда я передаю свою строку
    Code:
    InputCaptchaForm inputForm1 = new InputCaptchaForm(ref captchaNum);
    inputForm1.ShowDialog();
    В Form2 эту строку принимаю и обрабатываю
    Code:
    public partial class InputCaptchaForm : Form
        {
            public NetClass netC;
            string result = "";
            public InputCaptchaForm(ref string refstring)
            {
                InitializeComponent();
                this.sidPic(refstring);
            }
     
    public void sidPic(string sid)
            {
               \\Show captcha to pic
            }
     
    public void captcha_input_btn_Click(object sender, EventArgs e)
            {
                netC.captchaFromForm = captcha_input_TB.Text;
                this.Close();
            }
        }
    В NetClass у меня есть параметр
    Code:
    public string captchaFromForm {get; set;}
    куда я и пытаюсь передать то что в ТекстБоксе ввели... но когда я нажимаю кнопку ОК на форме, у меня класс NetClass уходит в кетч... посоветуйте плз как правильно будет с формы вернуть в NetClass это значение которое будет введено в ТекстБоксе
     
    zyh4n likes this.
  2. seosimf

    seosimf Member

    Joined:
    3 Mar 2011
    Messages:
    271
    Likes Received:
    44
    Reputations:
    6
    Можно через:
    1)Статическое свойства класса, т.е. непосредственно в Form2 использовать свойства класса.
    2)Создать в форме Form2 события, которое будет вызваться при закрытие формы или в captcha_input_btn_Click. В качестве аргументов события возвращать строку, а в классе подписываться на это события при создании формы.
    3)Передавать в конструктор формы к примеру делегат с сигнатурой свойства класса(можно завернуть в замыкания: (value) => { this.captchaFromForm = value; } ), для вашего случая - Action<string>, и вызывать его также как и события в captcha_input_btn_Click или при закрытии формы.