Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нарисовать график y=sin(x) в Panel, после нажатия кнопки 
:(
    Опции темы
meteor2312
Дата 26.11.2010, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 19.11.2010

Репутация: нет
Всего: нет



Помогите построить график функции y=sin(x) в Рanel.
У меня есть процедура private void panel1_Paint(object sender, PaintEventArgs e); надо чтобы он работала после нажатия кнопки, 
а не сразу после запуска проги.
PM MAIL   Вверх
RobinHoodPHD
Дата 27.11.2010, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 78
Регистрация: 12.8.2007
Где: Русь

Репутация: нет
Всего: 2



Код

   public partial class Form1 : Form
    {
        bool Flag; // флаг нажатия кнопки
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Flag = false;  //при загрузке формы сбрасываем флаг в ложь
        }

        private void button1_Click(object sender, EventArgs e) // обработчик нажатия кнопки
        {
            Flag = true; // флаг нажатия истина
            panel1.Refresh(); // вызываем перерисовку Panel
        }

//отрисовка Panel
        private void panel1_Paint(object sender, PaintEventArgs e)
        {
            if (Flag) { // если кнопка была нажата
             //Заменяем эту строку на вывод функции y=sin(x)
            e.Graphics.DrawLine(new Pen(Color.Aqua), new Point(0, 0), new Point(100, 100));
            
            }
            e.Graphics.Save(); // сохраняем изменения
        }


    }

PM MAIL   Вверх
meteor2312
Дата 28.11.2010, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 19.11.2010

Репутация: нет
Всего: нет



RobinHoodPHD, спасибо большое!
PM MAIL   Вверх
Экскалупатор
Дата 28.11.2010, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



RobinHoodPHD, а для чего нужна переменная flag? просто нажатия кнопки не достаточно? )))
архитектурно было бы правильнее не рисовать график в обработчике события. лучше написать отдельный метод и запускать его в нужный момент. иначе получается что событие отрабатывает в любом случае и приходится вводить дополнительные флаги и проводить танцы с бубном.
PM MAIL ICQ   Вверх
RobinHoodPHD
Дата 29.11.2010, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 78
Регистрация: 12.8.2007
Где: Русь

Репутация: нет
Всего: 2



Экскалупатор, Вы несомненно правы. Сэкономленные миллисекунды будут зачислены на Ваш счет) 
PM MAIL   Вверх
Экскалупатор
Дата 29.11.2010, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



RobinHoodPHD, вопрос не в милисекундах(я про них не говорил), я просто говорю что этот код требует жесткого рефакторинга. потому как панель не должна знать про функцию синуса. и тем более про то нажата ли кнопка или нет. хотя если вопрос стоит в том что бы просто реализовать, то конечно можно не загоняться... просто возможно кто кроме функции y=sin(x) в Рanel захочется нарисовать что то еще, и что тогда делать прикажете? правильно "добавить еще пару тройку флагов и ифов и никаких проблем"- (читать с сарказмом).
PM MAIL ICQ   Вверх
Enter
Дата 1.12.2010, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 13.2.2007

Репутация: нет
Всего: 2



у меня была как раз такая прога, и не только с синусом, а с кучкой разных функций

Это сообщение отредактировал(а) Enter - 1.12.2010, 12:41

Присоединённый файл ( Кол-во скачиваний: 52 )
Присоединённый файл  sin.zip 13,70 Kb
PM MAIL   Вверх
mihryak
Дата 1.12.2010, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 10
Всего: 36



PM MAIL ICQ   Вверх
Экскалупатор
Дата 1.12.2010, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



хм. а у меня не было... пойду утоплюсь.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0808 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.