C#--第11周实验--任务9(设计一个窗体)--利用Timer和图片框控件,编写一个图片不断向左移动的小动画

/* (程序头部注释开始)  
 * 程序的版权和版本声明部分  
 * Copyright (c) 2011, 烟台大学计算机学院学生   
 * All rights reserved.  
 * 文件名称:利用Timer和图片框控件,编写一个图片不断向左移动的小动画。
 * 作 者: 雷恒鑫   
 * 完成日期: 2012 年 11 月 10 日  
 * 版 本 号: V1.0   
 * 对任务及求解方法的描述部分  
 * 输入描述:利用Timer和图片框控件,编写一个图片不断向左移动的小动画。
 * 问题描述:  
 * 程序输出:  
 * 程序头部的注释结束  
 */


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication_twelve
{
    public partial class Form1 : Form
    {
        Boolean b = true;
        private int startY = 0, startY1 = 0, startY2 = 0;

        public Form1()
        {
            InitializeComponent();
            this.StartPosition = FormStartPosition.CenterScreen;
            //this.FormBorderStyle = FormBorderStyle.FixedSingle;

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.Text = "图片框实验";
            this.StartPosition = FormStartPosition.CenterScreen;
            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
            pictureBox1.Image = Image.FromFile("lanyangyang_one.png");
            pictureBox2.Image = Image.FromFile("qingwa_one.png");
            pictureBox3.Image = Image.FromFile("xiaopohai_one.png");

        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            int i = pictureBox1.Location.X + 10;
            int i2 = pictureBox2.Location.X + 10;
            int i3 = pictureBox3.Location.X + 10;
            if (i > this.Width)
            {
                i = 0;
            }
            startY = pictureBox1.Location.Y;
            startY1 = pictureBox2.Location.Y;
            startY2 = pictureBox3.Location.Y;
            pictureBox1.Location = new Point(i, startY);
            pictureBox1.Refresh();
            pictureBox2.Location = new Point(i, startY1);
            pictureBox2.Refresh();
            pictureBox3.Location = new Point(i, startY2);

            pictureBox2.Refresh();
            pictureBox3.Refresh();
        }

    }
}


 

运行结果:

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
好的,以下是红绿灯的窗体应用程序代码: ```csharp using System; using System.Drawing; using System.Windows.Forms; namespace TrafficLightApp { public partial class Form1 : Form { private Timer timer; private int count = 0; public Form1() { InitializeComponent(); // 创建 Timer 控件 timer = new Timer(); timer.Interval = 1000; timer.Tick += Timer_Tick; timer.Start(); } private void Timer_Tick(object sender, EventArgs e) { count++; // 根据计数器的值,控制红绿灯的显示 switch (count % 3) { case 0: pictureBoxRed.BackColor = Color.Gray; pictureBoxYellow.BackColor = Color.Gray; pictureBoxGreen.BackColor = Color.Green; break; case 1: pictureBoxRed.BackColor = Color.Red; pictureBoxYellow.BackColor = Color.Gray; pictureBoxGreen.BackColor = Color.Gray; break; case 2: pictureBoxRed.BackColor = Color.Gray; pictureBoxYellow.BackColor = Color.Yellow; pictureBoxGreen.BackColor = Color.Gray; break; } } } } ``` 在窗体设计器中,放置三个 PictureBox 控件,分别用于显示红、黄、绿三个灯。在窗体的构造函数中,创建 Timer 控件并设置其 Tick 事件。在 Tick 事件中,根据计数器的值(模 3),控制红绿灯的显示。在这里,我们将计数器每秒加 1,红灯亮 1 秒,黄灯亮 1 秒,绿灯亮 1 秒,然后重复这个过程。 需要注意的是,我们这里使用了三个 PictureBox 控件来显示红、黄、绿三个灯的状态,这些控件的背景色会根据状态变化而变化。这种方式相对简单,但也有一些缺点,比如不太容易实现灯的闪烁等效果。如果需要更加灵活的灯光控制,可以考虑使用 GDI+ 绘制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leihengxin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值