Загрузка элемента panel при нажатии на клавишу - C#
Формулировка задачи:
Дана вот такая задачка:
Написать Windows-приложение, которое строит графики четырех заданных функций.
Меню с командами Chart, Clear.
Команда Chart открывает диалоговое окно, содержащее:
-список для выбора цвета типа listbox
-список для выбора типа графика типа listbox
-кнопку button
Обеспечить возможность выбора цвта и графика, После щелчка по кнопке ОК в главном окне приложения строится график выбранной функции на интервале от -PI/2 до PI/2. Окно должно содержать заголовок графика, наименование и градацию осей. Изображение должно занимать все окно и масштабироваться при изменении размеров окна.
Команда Clear очищает окно.
Создал диалоговое окно, поместил компоненты, и присвоил переменным значения выделенных объектов(цвет и тип графика)
В главном окне создал элемент panel, и описал для него вывод графиков.
Но у меня при загрузке формы строится графики заданные по умолчанию. Как можно сделать чтобы главное окно загружалось пустым, и только после нажатия ОК прорисовывался график?
public string color = ""; //цвет public string type = ""; //итем color += listBox1.SelectedItem; //получение цвета type += listBox2.SelectedItem; //получение итема
private void panel1_Paint(object sender, PaintEventArgs e) { Form3 c = new Form3(); float W = panel1.Width, H = panel1.Height; float halfW = W / 2, halfH = H / 2; // оси координат e.Graphics.DrawLine(Pens.Black, halfW, 0, halfW, H); e.Graphics.DrawLine(Pens.Black, 0, halfH, W, halfH); // координаты предыдущей точки int ixPrev = -1; int iyPrev = (int)halfH; // синус на интервале x=[-PI/2..PI/2] // проходим по всем точкам на форме, вычисляем x и y=sin(x) for (int ix = 0; ix < W; ix++) { // переводим x в диапазон -1..1 float x = (ix - halfW) / halfW; // переводим x в -pi/2..pi/2 x *= (float)(Math.PI/2); // получаем sin(x) float y; if (c.type == "sin(x)") { y = (float)Math.Sin(x); } else if (c.type == "sin(x+PI/4)") { y = (float)Math.Sin(x + (Math.PI/4)); } else if (c.type == "cos(x)") { y = (float)Math.Cos(x); } else //default cos(x-PI/4) { y = (float)Math.Cos(x - (Math.PI / 4)); } // переводим y из -1..1 в пикселы на форме int iy = (int)(halfH - y * halfH); //рисование графика if (c.color == "Black") { e.Graphics.DrawLine(Pens.Black, ixPrev, iyPrev, ix, iy); } else if (c.color == "Red") { e.Graphics.DrawLine(Pens.Red, ixPrev, iyPrev, ix, iy); } else if (c.color == "Yellow") { e.Graphics.DrawLine(Pens.Yellow, ixPrev, iyPrev, ix, iy); } else //default Green { e.Graphics.DrawLine(Pens.Green, ixPrev, iyPrev, ix, iy); } ixPrev = ix; iyPrev = iy; } }
Решение задачи: «Загрузка элемента panel при нажатии на клавишу»
textual
Листинг программы
private void button1_Click(object sender, EventArgs e) { Bitmap bmp = new Bitmap(500, 500); pictureBox1.Image = bmp; timer1.Start(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д