Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
ABzik03
0 / 0 / 0
Регистрация: 07.05.2019
Сообщений: 1
1
.NET 4.x

Проблемы с ComboBox

07.05.2019, 09:20. Просмотров 276. Ответов 2

Хотел написать программу об астрономии. Однако что-то пошло не так.
При выборе планеты(кроме меркурия и шолпана) должна активироватся comboBox3 и в нем должна появится соответственный спутник. Спутник появляется в comboBox-e, но кусок кода который должен опусташать richtextbox не работает
Или я должен создать 3 процедуры, а не 1?
P.S Простите за длинный код. Я не решился использовать БД.
Скрин

Проблемы с ComboBox

Проблемы с ComboBox


Код

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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
 
namespace AstroWiki
{
    public partial class Wiki : Form
    {
        string a, b, с;
        short p;
        short n;
        public Wiki()
        {
            InitializeComponent();
        }
 
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
 
        }
 
        private void comboBox1_SelectedIndexChanged_1(object sender, EventArgs e)
        {
            n = 1;
            comboBox2.Enabled = false;
            comboBox3.Enabled = false;
            a = comboBox1.SelectedItem.ToString();
            choosed();
        }
 
        private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            n = 2;
            comboBox3.Enabled = false;
            b = comboBox2.SelectedItem.ToString();
            comboBox3.Items.Clear();
            choosed();
            if(p==3){
                comboBox3.Items.Add("Луна");
            }
            else if (p == 4)
            {
                comboBox3.Items.AddRange(new string[] { "Деймос", "Фобос" });
            }
            else if (p == 5)
            {
                comboBox3.Items.AddRange(new string[] { "Европа", "Калисто" });
            }
            else if (p == 6)
            {
                comboBox3.Items.AddRange(new string[] { "Титан", "Рея" });
            }
            else if (p == 7)
            {
                comboBox3.Items.AddRange(new string[] { "Титания", "Оберон" });
            }
            else if (p == 8)
            {
                comboBox3.Items.AddRange(new string[] { "Тритон", "Нереида" });
            }
            
        }
 
        private void comboBox3_SelectedIndexChanged(object sender, EventArgs e)
        {
            n = 0;
            с = comboBox3.SelectedItem.ToString();
            label4.Text = comboBox3.SelectedItem.ToString();
            choosed();
        }
        void choosed() {
            if (n == 1)
            {
                if (a == "Солнце")
                {
                    comboBox2.Enabled = true;
                    richTextBox1.Text = "    Со́лнце (астр. ☉) — одна из звёзд нашей Галактики (Млечный Путь) и единственная звезда Солнечной системы. Вокруг Солнца обращаются другие объекты этой системы: планеты и их спутники, карликовые планеты и их спутники, астероиды, метеороиды, кометы и космическая пыль.\r\n      По спектральной классификации Солнце относится к типу G2V (жёлтый карлик). Средняя плотность Солнца составляет 1,4 г/см³ (в 1,4 раза больше, чем у воды). Эффективная температура поверхности Солнца — 5780 кельвин[7]. Поэтому Солнце светит почти белым светом, но прямой свет Солнца у поверхности нашей планеты приобретает некоторый жёлтый оттенок из-за более сильного рассеяния и поглощения коротковолновой части спектра атмосферой Земли (при ясном небе, вместе с голубым рассеянным светом от неба, солнечный свет вновь даёт белое освещение).";
                    pictureBox1.Image = Properties.Resources.sun as Bitmap;
                }
                if (a == "UY Щита")
                {
                    richTextBox1.Text = "       UY Щита — звезда (гипергигант) в созвездии Щита. Находится на расстоянии 9500 св. лет (2900 пк) от Солнца.Это самая большая и одна из самых ярких известных звёзд после Эпсилона Возничнего B. По оценкам учёных, радиус UY Щита равен 1708 радиусам Солнца, диаметр 2,4 миллиарда км (15,9 а. е.). На пике пульсаций радиус может достигать 1900 радиусов Солнца. Объём звезды примерно в 5 миллиардов раз больше объёма Солнца. Если поместить UY Щита в центре Солнечной системы, то её фотосфера охватит орбиту Юпитера.";
                    pictureBox1.Image = Properties.Resources.UY as Bitmap;
                }
                if (a == "WOH G64")
                {
                    richTextBox1.Text = "       WOH G64 — звезда в созвездии Золотой Рыбы, вторая из крупнейших известных звёзд.\r\n        WOH G64 — красный сверхгигант[1] спектрального класса M7,5[4]. Расположена в соседней галактике Большое Магелланово Облако. Расстояние до Солнечной системы составляет примерно 163 тыс. св. лет[5].\r\n        Первоначально предполагалось, что светимость этой звезды — 500 000 солнечных и масса в 40 раз превышает значения Солнца, что, однако, несовместимо с её низкой температурой в 3200 K. Последующие исследования, проведённые с помощью телескопа VLT в Чили, показали, что пыль и газ вокруг звезды образуют тор, а не сферическую оболочку, что снижает светимость WOH G64 до 280 000 солнечных, а предполагаемый радиус звезды может быть равен 1540-2000 радиусам Солнца, что в пределах погрешности измерений равен радиусу звезды UY Щита (1708-2298? солнечных). Если WOH G64 поместить в центре Солнечной системы, то поверхность достигнет орбиты Сатурна. Размер газопылевого тора может достигать 30 000 а. е.[2][5]";
                    pictureBox1.Image = Properties.Resources.WOH as Bitmap;
                }
                if (a == "NML Лебедя")
                {
                    richTextBox1.Text = "       NML Лебедя (V1489 Лебедя) — звезда, красный гипергигант[3], находится в созвездии Лебедь. Это одна из крупнейших звёзд, известных в настоящее время, с радиусом, равным 1642—2775 (или как маленький 1 183) радиусам Солнца. Расстояние до неё оценивается примерно в 1,6 килопарсек или около 5300 световых лет[5].";
                    pictureBox1.Image = Properties.Resources.NML as Bitmap;
                }
                if (a == "Вэстерланд 1-26")
                {
                    richTextBox1.Text = "       Вэстерланд 1-26 — звезда, являющаяся красным сверхгигантом или гипергигантом, находится в звёздном скоплении Вэстерланд 1 в созвездии Жертвенника.\r\n      В 1961 году шведский астроном Бенгт Вестерлунд обнаружил систему Westerlund 1. В ней находится большое количество звёзд. В 1969 году учёные стали именовать звёзды этой системы по буквам, Вэстерланду 1-26 была присвоена буква «А»[7].";
                    pictureBox1.Image = Properties.Resources._1_26 as Bitmap;
                }
                if (a == "VY Большого Пса")
                {
                    richTextBox1.Text = "       VY Большого Пса (лат. VY Canis Majoris, VY CMa) — звезда в созвездии Большого Пса, гипергигант. Одна из крупнейших известных звёзд.\r\n        Расстояние от Солнца до VY Большого Пса составляет примерно 1170 парсек (3900 световых лет). Звезда излучает в основном в инфракрасном диапазоне.\r\n        Радиус звезды был уточнён в 2012 году — 1420 ± 120 радиусов Солнца[1]. Таким образом, диаметр этого сверхгиганта — около 2 миллиардов километров (≈13,2 а. е.). Если VY Большого Пса поместить на место Солнца, то поверхность звезды будет находиться между Сатурном и Юпитером. Для того чтобы облететь звезду по кругу, свету потребовалось бы 6 часов. Чтобы облететь её на сверхзвуковом самолёте со скоростью 4500 км/ч, понадобилось бы около 160 лет.";
                    pictureBox1.Image = Properties.Resources.dog as Bitmap;
                }
            }
            else if(n==2){
                if (b == "Меркурий") {
                    pictureBox1.Image = Properties.Resources.mer as Bitmap;
                    richTextBox1.Text = "       Мерку́рий — ближайшая к Солнцу планета Солнечной системы[12], наименьшая из планет земной группы. Названа в честь древнеримского бога торговли — быстрого Меркурия, поскольку она движется по небесной сфере быстрее других планет.\r\n       Среднее расстояние Меркурия от Солнца чуть меньше 58 млн км (57,91 млн км)[13][14]. Планета обращается вокруг Солнца за 88 земных суток. Видимая звёздная величина Меркурия колеблется от −1,9[2] до 5,5, но его нелегко заметить из-за близости к Солнцу.\r\n        Меркурий относится к планетам земной группы. По своим физическим характеристикам Меркурий напоминает Луну. У него нет естественных спутников, но есть очень разрежённая атмосфера. Планета обладает крупным железным ядром[15], являющимся источником магнитного поля, напряжённость которого составляет 0,01 от земного магнитного поля[16]. Ядро Меркурия составляет 83 % от всего объёма планеты[17][18]. Температура на поверхности Меркурия колеблется от 80 до 700 К (от −190 до +430 °C). Солнечная сторона нагревается гораздо больше, чем полярные области и обратная сторона планеты.";
                }
                if (b == "Шолпан")
                {
                    pictureBox1.Image = Properties.Resources.Ven as Bitmap;
                    richTextBox1.Text = "       Вене́ра — вторая по удалённости от Солнца планета Солнечной системы, наряду с Меркурием, Землёй и Марсом принадлежащая к семейству планет земной группы. Названа в честь древнеримской богини любви Венеры[6]. По ряду характеристик, например, по массе и размерам, Венера считается «сестрой» Земли[7]. Венерианский год составляет 224,7 земных суток. Она имеет самый длинный период вращения вокруг своей оси (243 земных суток) среди всех планет Солнечной системы и вращается в направлении, противоположном направлению вращения большинства планет.\r\n        Венера не имеет естественных спутников. Это третий по яркости объект на небе Земли, после Солнца и Луны. Планета достигает видимой звёздной величины −4,6m, так что её яркости достаточно, чтобы отбрасывать тени ночью. Изредка Венера видна невооружённым глазом и в светлое время суток.";
                }
                if (b == "Земля")
                {
                    comboBox3.Enabled = true;
                    pictureBox1.Image = Properties.Resources.earth as Bitmap;
                    p = 3;
                    richTextBox1.Text = "       Земля́ — третья по удалённости от Солнца планета Солнечной системы. Самая плотная, пятая по диаметру и массе среди всех планет и крупнейшая среди планет земной группы, в которую входят также Меркурий, Венера и Марс.\r\n        Иногда упоминается как Мир, Голубая планета[16][17][18], иногда Терра (от лат. Terra). Единственное известное человеку на данный момент тело Солнечной системы в частности и Вселенной вообще, населённое живыми организмами.\r\n        Научные данные указывают на то, что Земля образовалась из солнечной туманности около 4,54 миллиарда лет назад[19] и вскоре после этого приобрела свой единственный естественный спутник — Луну. Предположительно жизнь появилась на Земле примерно 4,25 млрд лет назад[20], то есть вскоре после её возникновения. С тех пор биосфера Земли значительно изменила атмосферу и прочие абиотические факторы, обусловив количественный рост аэробных организмов, а также формирование озонового слоя, который вместе с магнитным полем Земли ослабляет вредную для жизни солнечную радиацию[21], тем самым сохраняя условия существования жизни на Земле. Радиация, обусловленная самой земной корой, со времён её образования значительно снизилась благодаря постепенному распаду радионуклидов в ней. Кора Земли разделена на несколько сегментов, или тектонических плит, которые движутся по поверхности со скоростями порядка нескольких сантиметров в год. Изучением состава, строения и закономерностей развития Земли занимается наука геология.";
                }
                if (b == "Марс")
                {
                    comboBox3.Enabled = true;
                    p = 4;
                    pictureBox1.Image = Properties.Resources.mars as Bitmap;
                    richTextBox1.Text = "       Марс — четвёртая по удалённости от Солнца и седьмая по размерам планета Солнечной системы; масса планеты составляет 10,7 % массы Земли. Названа в честь Марса — древнеримского бога войны, соответствующего древнегреческому Аресу. Иногда Марс называют «красной планетой» из-за красноватого оттенка поверхности, придаваемого ей минералом маггемитом — γ-оксидом железа(III).\r\n        Марс — планета земной группы с разреженной атмосферой (давление у поверхности в 160 раз меньше земного).Особенностями поверхностного рельефа Марса можно считать ударные кратеры наподобие лунных, а также вулканы, долины, пустыни и полярные ледниковые шапки наподобие земных.";
                }
                if (b == "Юпитер")
                {
                    comboBox3.Enabled = true;
                    p = 5;
                    comboBox3.Items.AddRange(new string[] { "Европа", "Калисто" });
                    pictureBox1.Image = Properties.Resources.Jupiter as Bitmap;
                    richTextBox1.Text = "       Юпи́тер — крупнейшая планета Солнечной системы, пятая по удалённости от Солнца. Наряду с Сатурном, Ураном и Нептуном, Юпитер классифицируется как газовый гигант.\r\n        Планета была известна людям с глубокой древности, что нашло своё отражение в мифологии и религиозных верованиях различных культур: месопотамской, вавилонской, греческой и других. Современное название Юпитера происходит от имени древнеримского верховного бога-громовержца.\r\n        Ряд атмосферных явлений на Юпитере: штормы, молнии, полярные сияния, — имеет масштабы, на порядки превосходящие земные. Примечательным образованием в атмосфере является Большое красное пятно — гигантский шторм, известный с XVII века.";
                }
                if (b == "Сатурн")
                {
                    p = 6;
                    comboBox3.Enabled = true;
                    pictureBox1.Image = Properties.Resources.Saturn as Bitmap;
                    richTextBox1.Text = "       Сату́рн — шестая планета от Солнца и вторая по размерам планета в Солнечной системе после Юпитера. Сатурн, а также Юпитер, Уран и Нептун, классифицируются как газовые гиганты. Сатурн назван в честь римского бога земледелия. Символ Сатурна — серп (Юникод: ♄).\r\n        В основном Сатурн состоит из водорода, с примесями гелия и следами воды, метана, аммиака и тяжёлых элементов. Внутренняя область представляет собой относительно небольшое ядро из железа, никеля и льда, покрытое тонким слоем металлического водорода и газообразным внешним слоем. Внешняя атмосфера планеты кажется из космоса спокойной и однородной, хотя иногда на ней появляются долговременные образования. Скорость ветра на Сатурне может достигать местами 1800 км/ч, что значительно больше, чем на Юпитере. У Сатурна имеется планетарное магнитное поле, занимающее промежуточное положение по напряжённости между магнитным полем Земли и мощным полем Юпитера. Магнитное поле Сатурна простирается на 1 000 000 километров в направлении Солнца. Ударная волна была зафиксирована «Вояджером-1» на расстоянии в 26,2 радиуса Сатурна от самой планеты, магнитопауза расположена на расстоянии в 22,9 радиуса.";
                }
                if (b == "Уран")
                {
                    p = 7;
                    comboBox3.Enabled = true;
                    pictureBox1.Image = Properties.Resources.Uranus as Bitmap;
                    richTextBox1.Text = "       Ура́н — планета Солнечной системы, седьмая по удалённости от Солнца, третья по диаметру и четвёртая по массе. Была открыта в 1781 году английским астрономом Уильямом Гершелем и названа в честь греческого бога неба Урана.\r\n        Уран стал первой планетой, обнаруженной в Новое время и при помощи телескопа[12]. Его открыл Уильям Гершель 13 марта 1781 года[13], тем самым впервые со времён античности расширив границы Солнечной системы в глазах человека. Несмотря на то, что порой Уран различим невооружённым глазом, более ранние наблюдатели принимали его за тусклую звезду[14].\r\n        В отличие от газовых гигантов — Сатурна и Юпитера, состоящих в основном из водорода и гелия, в недрах Урана и схожего с ним Нептуна отсутствует металлический водород, но зато много льда в его высокотемпературных модификациях. По этой причине специалисты выделили эти две планеты в отдельную категорию «ледяных гигантов». Основу атмосферы Урана составляют водород и гелий. Кроме того, в ней обнаружены следы метана и других углеводородов, а также облака изо льда, твёрдого аммиака и водорода. Это самая холодная планетарная атмосфера Солнечной системы с минимальной температурой в 49 К (−224 °C). Полагают, что Уран имеет сложное слоистое строение облаков, где вода составляет нижний слой, а метан — верхний[11]. Недра Урана состоят в основном изо льдов и горных пород.";
                }
                if (b == "Нептун")
                {
                    p = 8;
                    comboBox3.Enabled = true;
                    pictureBox1.Image = Properties.Resources.Neptune as Bitmap;
                    richTextBox1.Text = "       Непту́н — восьмая и самая дальняя от Земли планета Солнечной системы. Нептун также является четвёртой по диаметру и третьей по массе планетой. Масса Нептуна в 17,2 раза, а диаметр экватора в 3,9 раза больше земных[10]. Планета была названа в честь римского бога морей. Её астрономический символ Neptune symbol.svg — стилизованная версия трезубца Нептуна.\r\n        Обнаруженный 23 сентября 1846 года[1], Нептун стал первой планетой, открытой благодаря математическим расчётам, а не путём регулярных наблюдений. Обнаружение непредвиденных изменений в орбите Урана породило гипотезу о неизвестной планете, гравитационным возмущающим влиянием которой они и обусловлены. Нептун был найден в пределах предсказанного положения. Вскоре был открыт и его спутник Тритон, однако остальные 13 спутников, известные ныне, были неизвестны до XX века. Нептун был посещён лишь одним космическим аппаратом, «Вояджером-2», который пролетел вблизи от планеты 25 августа 1989 года.";
                }
            else {
                if (c == "Луна")
                {
                    richTextBox1.Text = "";
                }
                else if (с == "Деймос")
                {
                    richTextBox1.Text = "";
                }
                else if (с == "Фобос")
                {
                    richTextBox1.Text = "";
                }
                else if (с == "Европа")
                {
                    richTextBox1.Text = "";
                }
                else if (с == "Калисто")
                {
                    richTextBox1.Text = "";
                }
                else if (с == "Титан")
                {
                    richTextBox1.Text = "";
                }
                else if (с == "Рея")
                {
                    richTextBox1.Text = "";
                }
                else if (с == "Титания")
                {
                    richTextBox1.Text = "";
                }
                else if (с == "Оберон")
                {
                    richTextBox1.Text = "";
                }
                else if (с == "Тритон")
                {
                    richTextBox1.Text = "";
                }
                else if (с == "Нереида")
                {
                    richTextBox1.Text = "";
                }
            }
            }
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            Process.GetCurrentProcess().Kill();
        }
 
        private void pictureBox1_Click(object sender, EventArgs e)
        {
 
        }
    }
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2019, 09:20
Ответы с готовыми решениями:

Проблемы со вставкой ComboBox в ToolBar
Если вставить в ToolBar ComboBox, то он отображается поверх кнопок. Нельзя это изменить?

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

Сравнивание текста в combobox-е и вывод определенных значений в другой combobox
Есть 2 combobox-a. В каждом берутся данные из текстового файла. Нужно при выборе одной строки в 1м...

C# Как сделать чтобы при выборе в combobox , менялись значения в других combobox?
Приветствую коллеги. Только встал на путь программирования и столкнулся с дилеммой. Есть форма,...

Как сделать чтобы при выборе в comboBox, выводилось значение в другом comboBox?
Здравствуйте! Есть таблица из 2 столбца (id, name). Как сделать чтобы при выборе из первого...

2
bloomder
140 / 94 / 49
Регистрация: 08.01.2013
Сообщений: 566
Завершенные тесты: 1
07.05.2019, 12:01 2
Я думаю под отладкой Вы найдете свои косяки. Ставите курсор на строке кода нажимаете F9, и в режиме debug программа остановится на этой строчке, не выполнив код строки, когда запустите код(F5 если не ошиаюсь), и Вы можете посмотреть значения в переменных и понять где нарушена логика.
0
OlegDDP
0 / 0 / 0
Регистрация: 30.04.2019
Сообщений: 3
07.05.2019, 16:04 3
Судя по коду richTextBox1 никогда не должен очищаться. Будь аккуратнее со скобками. И пользуйтесь лесенкой. Тогда код будет понятнее выглядеть для Вас. Вам нет смысла создавать 3 процедуры. Просто Вы неаккуратны при написании операторов if. Согласен с предыдущим оратором. Отладчик откроет Вам глаза на множество загадок Вашего кода.
0
07.05.2019, 16:04
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2019, 16:04

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как сделать чтобы при выборе в combobox , менялись значения в других combobox?
Есть два combobox. Как их сделать зависимыми друг от друга. Что бы при выборе одного combobox...

C# Выбранный элемент в comboBox добавить к тексту в этом же comboBox
Здравствуйте Есть один comboBox, в котором будет около 20 элементов в выпадающем списке. Нужно...

Заполнение ComboBox из БД в зависимости от значения в другом ComboBox
Помогите пожалуйста сделал базу в sql server и привязал ее к visual studia но возникла проблема как...


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

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

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