Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как вызвать уже заполненый, ранее, данными класс

59K
05 сентября 2013 года
udjen
4 / / 22.11.2010
Всем привет, я столкнулся на днях с проблемой в классах не могу найти необходимой информации, надеюсь на вашу помощь..
Ситуация:

Есть
Код C#

Код:
public class class1
    {
         public class class2
    {
        /*набор полей*/
    }
 
     public class class3
     {
      /*набор полей*/
     }
   }
Необходимо допустим в одной форме заполнить ВСЕ поля, а в другой форме снова получить данные с уже заплненного класса.. Я знаю как обращаться к елементам другого класса только через экземпляр, а как получить заполненый класс, собственно это и есть вопрос?..
надеюсь на вашу помощь)
Читал в сторону интерфейсов, но либо ничего не понял, либо они мне тут не очень нужны)
85K
05 сентября 2013 года
Алексей Иевенко
16 / / 06.08.2013
Не знаю что у вас там не работает, но у меня работает... Вот наш класс


Код:
public class Class1
    {
       public Class2 clas = new Class2();
       public Class3 clas1 = new Class3();

       public class Class2
       {
           public string elem { get; set; }
       }
       public class Class3
       {
           public string elem2 { get; set; }
       }
    }
Вот форма 1, на которой находятся текстовое поле и две кнопочки — одна для отправки сообщения в класс с записью данных, а вторая для открытия второй формы..


Код:
public partial class Form1 : Form
    {
        private Class1 clas = null;
        public Form1()
        {
            InitializeComponent();
        }

        private void InsertForm(object sender, EventArgs e) {
            clas = new Class1();
            clas.clas.elem = this.textBox1.Text;
            clas.clas1.elem2 = this.textBox1.Text;
        }
        private void ClickBut(object sender, EventArgs e) {

            Form2 form = new Form2(clas);
            if (form.ShowDialog() == System.Windows.Forms.DialogResult.OK) {

               
            }
        }
    }
Вот вторая форма... на ней два текстбокса, в которые выводится информация с класса...


Код:
public partial class Form2 : Form
    {
       
        private Class1 classs = null;
        public Form2(Class1 clas)
        {
            classs = new Class1();
            classs.clas = clas.clas;
            classs.clas1 = clas.clas1;
            InitializeComponent();

        }

        private void LoadOn(object sender, EventArgs e) {

            this.textBox1.Text = classs.clas.elem;
            this.textBox2.Text = classs.clas1.elem2;      
        }
       
    }
К первой форме два обработчика кликов по кнопочкам InsertForm для заполнения полей ваших классов и ClickBut для вызова второй формы, в которой работает обработчик события загрузки формы, который выводит данные из полей класса...
412
05 сентября 2013 года
grgdvo
323 / / 04.07.2007
Когда класс "заполняют" данными - получается ОБЪЕКТ - экземпляр класса.
Вам нужно почитать какую-нибудь книжку по основам ООП, чтобы не путаться в терминологии и разобраться что есть что по сути.
Соответственно Вам нужно создать ОБЪЕКТ, заполнив его данными (например в конструкторе), и передать этот объект (это будет переменная типа КЛАСС, или типа указатель на КЛАСС) из одной формы в другую.
59K
05 сентября 2013 года
udjen
4 / / 22.11.2010
А можно немного подробнее, допустим основываясь на моем примере, ато сейчас я совсем запутался(
85K
05 сентября 2013 года
Алексей Иевенко
16 / / 06.08.2013
Вам необходимо создать объекты включенных в класс других классов, чтобы суметь обращаться к полям включенных классов. Вы можете создать полноценные объекты или же воспользоваться автоматическими свойствами — примерно так...
Код:
public class Class1
    {
       public Class2 clas {get; set;}
       public Class3 clas1 { get; set; }
       public class Class2
       {
           public string elem { get; set; }
       }
       public class Class3
       {
           public string elem2 { get; set; }
       }
    }
59K
05 сентября 2013 года
udjen
4 / / 22.11.2010
Алексей Иевенко, это понятно, у меня вопрос немного в другом.. Как использовать в другом классе заполненый мой класс.
Вот допустим: у меня есть класс "Информация", в форме1 я задаю значения полям хранящимся в этом классе. Теперь в форме 2 мне необходимо получить информацию которая храниться в классе "Информация". Экземпляз не подходит, т.к. когда я создаю экхемпляр этого класса, то все поля пустые...
59K
05 сентября 2013 года
udjen
4 / / 22.11.2010
Спасибо, действительно работает, я что-то делаю не так(
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог