1 / 1 / 0
Регистрация: 15.05.2016
Сообщений: 14
1

Нужно вывести информацию из унаследованного класса

12.10.2016, 19:23. Показов 815. Ответов 1
Метки нет (Все метки)

Всем доброго времени суток))
Я недавно начала изучать WindowsForm и столкнулась со следующей проблемой - не получается вывести информацию в TextBox из класса-наследника(( Идея следующая: сделать что-то похожее на кинотеатр, т.е, у нас есть ComboBox, в котором мы выбираем жанр фильма, зависимо от выбранного жанра, в следующем ComboBox'е выбираем фильм, потом вводим время показа. На этом этапе проблем не было. Дальше, в качестве приятных плюшек, мы предлагаем нашим зрителям бонус в виде дополнительных фильмов, если был выбран жанр Аниме, эти дополнения у нас прописаны в классе-наследнике. И вот тут начинаются проблемы, а именно, не выводятся данные из этого класса.
Помогите, пожалуйста, а то я совсем уже запуталась. Может что-то где-то не дописала?
P.S. Скрин конструктора формочки и сама она так же прилагаются))

Код формы
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
using System;
using System.Windows.Forms;
 
namespace LR_3_VRI
{
    public partial class Form1 : Form
    {
        Films new_films;
        Anime new_anime;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void GenreBox_SelectedIndexChanged(object sender, EventArgs e) //здесь происходит связка двух combobox'ов
        {
            if (GenreBox.SelectedIndex == 0) //здесь у нас аниме
            {
                GenreBox.Text = FilmsBox.Text;
                FilmsBox.Items.Add("Принцесса Мононоке");
                FilmsBox.Items.Add("Ходячий Замок");
                FilmsBox.Items.Add("Унесенные Ветром");
            }
            if (GenreBox.SelectedIndex == 1) //биография
            {
                FilmsBox.Items.Add("Сноуден");
                FilmsBox.Items.Add("Чудо на Гудзоне");
                FilmsBox.Items.Add("Принцесса Ток-хе");
                FilmsBox.Items.Add("Пеле: Рождение легенды");
            }
            if (GenreBox.SelectedIndex == 2)//военный
            {
                FilmsBox.Items.Add("Снайпер: Призрачный стрелок");
                FilmsBox.Items.Add("13 часов: Тайные солдаты Бенгази");
            }
            if (GenreBox.SelectedIndex == 3)//детектив
            {
                FilmsBox.Items.Add("Тёмный сигнал");
            }
            if (GenreBox.SelectedIndex == 4)//детский
            {
                FilmsBox.Items.Add("Маша и медведь. Запутанные истории");
                FilmsBox.Items.Add("Лунтик");
                FilmsBox.Items.Add("Смешарики");
                FilmsBox.Items.Add("Колобки ведут расследование");
                FilmsBox.Items.Add("Ёжик в тумане");
            }
            if (GenreBox.SelectedIndex == 5)//документальный
            {
                FilmsBox.Items.Add("Путешествие времени");
            }
            if (GenreBox.SelectedIndex == 6)//драма
            {
                FilmsBox.Items.Add("Землетрясение");
                FilmsBox.Items.Add("Вечность");
            }
            if (GenreBox.SelectedIndex == 7)//комедия
            {
                FilmsBox.Items.Add("Миссия: Неадекватна");
                FilmsBox.Items.Add("Марли и Я");
                FilmsBox.Items.Add("Тайная жизнь домашних животных");
            }
            if (GenreBox.SelectedIndex == 8)//новости
            {
                FilmsBox.Items.Add("60 минут");
                FilmsBox.Items.Add("Право голоса. Россия – США: обострение");
                FilmsBox.Items.Add("Место встречи");
                FilmsBox.Items.Add("Железная логика с Сергеем Михеевым");
            }
            if (GenreBox.SelectedIndex == 9)//приключения
            {
                MessageBox.Show("В этом жанре сегодня нет фильмов.");
            }
            if (GenreBox.SelectedIndex == 10)//семейный
            {
                FilmsBox.Items.Add("Альдабра. Путешествие к таинственному острову");
            }
            if (GenreBox.SelectedIndex == 11)//спорт
            {
                FilmsBox.Items.Add("Сила воли");
                FilmsBox.Items.Add("Фехтовальщик");
            }
            if (GenreBox.SelectedIndex == 12)//ток-шоу
            {
                MessageBox.Show("В этом жанре сегодня нет фильмов.");
            }
            if (GenreBox.SelectedIndex == 13)//ужасы
            {
                FilmsBox.Items.Add("Абатуар. Лабиринт страха");
                FilmsBox.Items.Add("Американская история ужасов");
                FilmsBox.Items.Add("Репортаж со свадьбы");
                FilmsBox.Items.Add("Пункт назначения");
            }
            if (GenreBox.SelectedIndex == 14)//фэнтези
            {
                FilmsBox.Items.Add("Дом странных детей Мисс Перегрин");
                FilmsBox.Items.Add("Малефисента");
                FilmsBox.Items.Add("Охота на ангелов");
            }
        }
 
        private void ResultBox_Click(object sender, EventArgs e)
        {
            if (Convert.ToInt32(Time_ShowHBox.Text) < 0 || Convert.ToInt32(Time_ShowHBox.Text) > 23)//задаются исключения, которые контролируют заполнения всех полей
            {
                MessageBox.Show("Неверно введены часы.");
                return;
            }
            if (Convert.ToInt32(Time_ShowMBox.Text) < 0 || Convert.ToInt32(Time_ShowMBox.Text) > 59)
            {
                MessageBox.Show("Неверно введены минуты.");
                return;
            }
 
            if (GenreBox.Text == "")
            {
                MessageBox.Show("Введите жанр фильма.");
                return;
            }
 
            if (Time_ShowHBox.Text != "")
            {
                if (FilmsBox.Text != "")
                {
                    new_films = new Films(FilmsBox.Text, GenreBox.Text, Convert.ToInt32(Time_ShowHBox.Text), Convert.ToInt32(Time_ShowMBox.Text));
                }
                else
                {
                    MessageBox.Show("Введите название фильма.");
                }
            }
            else
            {
                if (FilmsBox.Text != "")
                {
                    new_films = new Films(FilmsBox.Text, GenreBox.Text, 0, 0);
                }
                else
                {
                    MessageBox.Show("Введите название фильма.");
                }
            }
            if (GenreBox.Text == "Аниме") //а тут попытка привязаться к классу-наследнику
            {
                Anime komodo_anime = new Anime("", "Аниме", 0,0,"Мой сосед Тоторо","","");
                Anime spokon_anime = new Anime("", "Аниме", 0, 0, "", "Я, пес и секретная служба", "");
                Anime dobutsu_anime = new Anime("", "Аниме", 0, 0, "", "", "Баскетбол Куроко");
 
            }
 
            TextBox.Text += new_films.GetInformation() + Environment.NewLine; //здесь, соответственно, вывод информации в textbox
    }
}


Код базового класса
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
namespace LR_3_VRI
{
    class Films //базовый класс
    {
            public string film_name; //поле переменной
            public string genre;
            public int time_show1;
            public int time_show2;
 
            public Films(string film_name, string genre, int time_show1, int time_show2) //конструктор 
            {
                this.film_name = film_name;
                this.genre = genre;
                this.time_show1 = time_show1;
                this.time_show2 = time_show2;
            }
            public virtual string GetInformation() //указываем, какую информацию выводим
            {
                string information;
                information = "Название фильма: " + this.film_name + "; Жанр: " + this.genre + "; Время показа: " + this.time_show1.ToString() + " : " + this.time_show2.ToString();
                return information;
            }
    }
}


Код класса-наследника
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
namespace LR_3_VRI
{
    class Anime : Films //унаследованный класс
    {
        public string komodo_anime; //поля переменных
        public string spokon_anime;
        public string dobutsu_anime;
 
        public string komodo_anime_name //свойства
        {
            get { return komodo_anime; }
            set { komodo_anime = value; }
        }
        public string spokon_anime_name
        {
            get { return spokon_anime; }
            set { spokon_anime = value; }
        }
        public string dobutsu_anime_name
        {
            get { return dobutsu_anime; }
            set { dobutsu_anime = value; }
        }
 
        public Anime(string film_name, string genre, int time_show1, int time_show2, string komodo_anime, string spokon_anime, string dobutsu_anime) : base(film_name, genre, time_show1, time_show2)
        {
            this.komodo_anime_name = komodo_anime;
            this.spokon_anime_name = spokon_anime;
            this.dobutsu_anime_name = dobutsu_anime;
        }
 
        public override string GetInformation()
        {
            string information;
            information = base.GetInformation() + "; Дополнение: " + "Детское аниме: " + this.komodo_anime + "; Аниме-спорт: " + this.spokon_anime + "; Аниме-пушистики: " + this.dobutsu_anime;
            return information;
        }
    }
}
Миниатюры
Нужно вывести информацию из унаследованного класса  
Вложения
Тип файла: rar LR 3 VRI.rar (1.52 Мб, 5 просмотров)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.10.2016, 19:23
Ответы с готовыми решениями:

Нужно ли самому удалять экземпляр класса, унаследованного от QThread?
Привет! Есть класс, унаследованный от QThread с макросом Q_OBJECT, создаю я этот экземпляр при...

События у унаследованного VCL класса
Здравствуйте. Есть проблемка: Есть класс, унаследованный от TImage. Нужно чтобы, при...

Инициализация класса, унаследованного от QWidget
Доброго времени суток. Пожалуйста объясните темному как сделать следующее. Имеем класс: class...

Доступ к функциям унаследованного класса
Не знаю как в двух словах описать проблему поэтому если что, модераторы поправьте название темы. У...

1
1 / 1 / 0
Регистрация: 15.05.2016
Сообщений: 14
13.10.2016, 00:20  [ТС] 2
Все, сделала, работает, как хотела))
Скрины с исправлениями и результат работы прилагаются))
Миниатюры
Нужно вывести информацию из унаследованного класса   Нужно вывести информацию из унаследованного класса   Нужно вывести информацию из унаследованного класса  

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2016, 00:20

Нужно вывести информацию в две колонки
&lt;tr class=&quot;&lt;?php echo $i % 2?&quot;gray&quot;:&quot;&quot;;?&gt;&quot;&gt; &lt;td style=&quot;text-align:left;&quot;&gt; ...

Что делать если нужно знести информацию в 2 разных объекта базового класса при закрытом наследование
Что делать если нужно знести информацию в 2 разных объекта базового класса при закрытом...

Нужно вывести информацию из БД по несколько записей на странице
Доброе время суток, Окажите, плз, помощь начинающему.. Стоит задачка вывести информацию из БД по...

Нужно вывести информацию относящуюся к определённой дате
Нужно вывести информацию относящуюся к определённой дате, но так как даты повторяются,есть колонка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.