如何使用计时器在Visual Studio上顺序绘制3行?

问题描述 投票:0回答:1

我希望这个简单的演示程序在它们之间以500毫秒的间隔绘制3条线[(即绘制第一条线(暂停间隔500毫秒),绘制第二条线(暂停间隔500毫秒),绘制第3线并最终停止timer1]。] >

我已经在Visual Studio的相应(timer1属性Behavior Interval)字段中输入了500msec的值。现在,演示程序确实绘制了三行,但是500毫秒的间隔不起作用(显然是因为void timer1_Tick中缺少代码)。

有人可以帮忙吗?预先谢谢大家!

namespace WindowsFormsApp44

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    Graphics g;
    Pen p;

    private void Form1_Load(object sender, EventArgs e)
    {
        g = this.CreateGraphics();
        p = new Pen(Color.Red, 5);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        timer1.Start();
        g.DrawLine(p, 200, 200, 300, 100);
        g.DrawLine(p, 300, 100, 400, 200);
        g.DrawLine(p, 200, 200, 400, 200);
        timer1.Stop();
    }

    private void timer1_Tick(object sender, EventArgs e)
    {

    }
}

}'''

我希望这个简单的演示程序在它们之间以500毫秒的间隔绘制3条线[(即绘制第一条线(暂停间隔500毫秒),绘制第二条线(暂停间隔500毫秒),绘制第三条线,最后...]

尝试这样的事情:

using System;
using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsApp13
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        Graphics g;
        Pen p;
        int tickcount = 1;

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
            timer1.Start();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            g = this.CreateGraphics();
            p = new Pen(Color.Red, 5);
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            switch (tickcount)
            {
                case 1:
                    g.DrawLine(p, 200, 200, 300, 100);
                    break;

                case 2:
                    g.DrawLine(p, 300, 100, 400, 200);
                    break;

                case 3:
                    g.DrawLine(p, 200, 200, 400, 200);
                    break;

                default:
                    break;
            }
            tickcount++;
            if (tickcount > 3)
            {
                timer1.Stop();
                timer1.Enabled = false;
            }
        }
    }
}
c# draw
1个回答
0
投票

尝试这样的事情:

© www.soinside.com 2019 - 2024. All rights reserved.