C#.Анимация с формой

342
28 декабря 2016, 02:03

Можно ли при нажатии на "Esc" переместить плавно форму в верхний левый угол рабочего экрана? Это как перетащить мышью. Спасибо.

Answer 1

Можно реализовать с помощью события по нажатию клавиши. Примерно так:

public partial class Form1 : Form
{
    Timer t;
    public Form1()
    {
        t = new Timer();
        t.Interval = 10;
        t.Tick += tick;
        InitializeComponent();
    }
    private void Form1_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Escape)
        {
            deltaX = this.Left / 30;
            deltaY = this.Top / 30;
            t.Start();
        }
    }
    private void tick(object sender, EventArgs e)
    {
        if (this.Left > 0 || this.Top > 0)
        {
            if (this.Left > 0) this.Left -= this.Left > deltaX ? deltaX : this.Left;
            if (this.Top > 0) this.Top -= this.Top > deltaY ? deltaY : this.Top;
        }
        else
        {
            t.Stop();
        }
    }
}

Немного поправил. Теперь окно двигается ровно в угол. Скорость регулируется либо за счет t.Interval, либо за счет делителя при определении deltaX и deltaY, либо за счет того и другого. Не стоит интервал ставить слишком большим (будет видно как форма "шагает" по экрану).

READ ALSO
Как загрузить изображение в бд php

Как загрузить изображение в бд php

Не могу загрузить изображение в БДВыдает ошибку "Необходимо загрузить изображение", то есть он уже выдает ошибку в первом условии следующего...

346
Работа цикла for при поиске простого числа [требует правки]

Работа цикла for при поиске простого числа [требует правки]

Есть такая логика поиска простого числа

400
Проверить первый символ слова-строки на регистр

Проверить первый символ слова-строки на регистр

Есть ли функция, которая позволяет узнать, является ли первый [0] символ строки - прописная или строчная буква? Если нет, то какие есть способы...

579
Неправильная работа php date_create_from_format( )

Неправильная работа php date_create_from_format( )

Когда я запускаю такой скрипт:

356