Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2013, 16:43   #1
misery
Новичок
Джуниор
 
Регистрация: 17.12.2013
Сообщений: 1
По умолчанию Изменить код

Задача: Напишите такое приложение: при нажатии на клавишу Enter в центре формы появляется квадрат размера 10x10. Пользователь может управлять его положением с помощью клавиш управления курсором и изменять его размеры с помощью сочетания клавиш Shift и клавиш управления курсором. При этом размеры квадрата могут изменяться только в пределах заданного диапазона (длина стороны может принимать значение из диапазона [1..Min(ширина формы, высота формы) – 10]), а сам квадрат не может перемещаться за пределы формы. При нажатии на клавишу F1 выводится диалоговое окно с информацией о создателе программы.

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

Код:
public partial class Form1 : Form
    {
        Pen MyPen;
        int X = 0, Y = 0, S = 10;
        bool draw = false;
        public Form1()
        {
            InitializeComponent();
            MyPen = new Pen(Color.Black);
        }
 
        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyValue==112) MessageBox.Show("Я создатель! ");
            switch (e.KeyValue)
            {
                case 13:
                    if (!draw)
                    {
                        draw = true;
                        X = this.ClientSize.Width / 2 - 5;
                        Y = this.ClientSize.Height / 2 - 5;
                    }
                    break;
                case 37:
                    X -= 1;
                    break;
                case 38:
                    if (e.Shift)
                    {
                        if (S < Math.Min(this.ClientSize.Height, this.ClientSize.Width) - 10)
                        {
                            S += 1;
                            if (S % 2 == 0)
                            {
                                X -= 1;
                                Y -= 1;
                            }
                        }
                    }
                    else
                        Y -= 1;
                    break;
                case 39:
                    X += 1;
                    break;
                case 40:
                    if (e.Shift)
                    {
                        if (S > 1)
                        {
                            S -= 1;
                            if (S % 2 == 0)
                            {
                                X += 1;
                                Y += 1;
                            }
                        }
                    }
                    else
                        Y += 1;
                    break;
                
            }
 
            if (X < 0)
                X += 1;
            if (Y < 0)
                Y += 1;
            if (X + S > this.ClientSize.Width)
                X -= 1;
            if (Y + S > this.ClientSize.Height)
                Y -= 1;
 
            Invalidate();
        }
 
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics graph = e.Graphics;
            if (draw)
                graph.DrawRectangle(MyPen, X, Y, S, S);
        }
 
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            MyPen.Dispose();
        }
 
    }
}
misery вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменить код Veryn4ik1993 Помощь студентам 5 02.12.2013 19:02
Изменить код Vadiliy Общие вопросы C/C++ 1 16.06.2013 17:15
Программно изменить код страницы(как в Опере через исходный код) igrok111 Работа с сетью в Delphi 7 20.04.2013 23:46
Изменить код... Genius-D Помощь студентам 0 09.02.2011 16:57
Изменить код MrFrost Помощь студентам 0 29.10.2010 00:23