using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using System.IO;
using System.Runtime.InteropServices

namespace 自动切换图像
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private bool Stara_Stop = true;
string path1,path2;
int i = 1;
private void timer1_Tick(object sender, EventArgs e)//自动切换
{
try
{
if (!Stara_Stop && (i < (Convert.ToInt16(textBox1.Text) + 1)))
{

//Thread.Sleep(1000);
pictureBox1.Image = null;
path2 = path1 + i.ToString() + Image_format();
pictureBox1.Image = Image.FromFile(path2);
if (i == Convert.ToInt16(textBox1.Text))
{
i = 0;
}
i++;

}
}
catch (Exception ex)
{
timer1.Enabled = false;
MessageBox.Show(ex.Message,"error!",MessageBoxButtons.OK);
}
}

private void button1_Click(object sender, EventArgs e)//开始停止
{
if(m_Data_null())
{
if (Stara_Stop)
{
path1 = path();
button1.Text = "停止切换";
button1.BackColor = Color.Red;
Stara_Stop = false;
timer1.Enabled = true;
timer1.Interval = Convert.ToInt16(textBox3.Text);

textBox1.Enabled = false;
textBox2.Enabled = false;
textBox3.Enabled = false;
comboBox1.Enabled = false;
button2.Enabled = false;
}
else
{
button1.Text = "开始切换";
button1.BackColor = Color.White;
Stara_Stop = true;
timer1.Enabled = false;

textBox1.Enabled = true;
textBox2.Enabled = true;
textBox3.Enabled = true;
comboBox1.Enabled = true;
button2.Enabled = true;

}
}
}

private bool m_Data_null()
{
bool m_Data = false;
if (textBox1.Text != string.Empty && textBox2.Text != string.Empty && textBox3.Text != string.Empty
&& comboBox1.Text != string.Empty)
{
m_Data = true;
}
else
{
m_Data = false;
MessageBox.Show("请设置切换的图像及条件!", "提示!", MessageBoxButtons.OK);
}
return m_Data;
}

private string path()//图像路径
{
string m_path;
if (textBox1.Text == string.Empty)
{
m_path = @"D:\_VS2015_\图像自动切换\Image\robot\";

}
else
{
m_path = textBox2.Text+ @"\";
}
return m_path;
}

private string Image_format()//图像格式
{
string format;
format = comboBox1.Text;
return format;
}

private void folderBrowserDialog1_HelpRequest(object sender, EventArgs e)
{

}

private void Form1_Load(object sender, EventArgs e)
{
comboBox1.Text = ".PNG";
}

private void button2_Click(object sender, EventArgs e)
{
i = 1;
pictureBox1.Image = null;
}

private void textBox2_MouseDoubleClick(object sender, MouseEventArgs e)
{
//选择打开文件
//OpenFileDialog of = new OpenFileDialog();
//if (of.ShowDialog() == DialogResult.OK)
//{
// textBox2.Text = of.FileName;
//}

//选择文件夹路径

FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
if (folderBrowserDialog.ShowDialog() == DialogResult.OK)
{
textBox2.Text = folderBrowserDialog.SelectedPath;
//获取文件数量
var flies = Directory.GetFiles(textBox2.Text);
textBox1.Text = (flies.Length).ToString();
}
}

private void button3_Click(object sender, EventArgs e)
{
this.Close();
}

}
}

//以下是UI界面

C# 图像自动切换的更多相关文章

  1. 【温故而知新-Javascript】图片效果(图像震动效果、闪烁效果、自动切换图像)

    1.当鼠标指针经过图像时图像震动效果 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...

  2. 自定义Image自动切换图像控件

    做这么一个控件,图片自动切换,形成动画效果. 随便的码码,码完发现东西太少了,不过还算完善. public class MyPictureBox : PictureBox { Timer timer ...

  3. 原生js+css3实现图片自动切换,图片轮播

    运用CSS3transition及opacity属性 制作图片轮播动画 自己这两天根据用js来控制触发CSS3中transition属性,从而写出来的以CSS3动画为基础,js控制过程的图片轮播 运用 ...

  4. 获取bing.com的图片并在gnome3中设置自动切换

    发现 bing.com 上的图片很好看,因此打算每天把 bing.com 的图片下载下来,用作桌面. 需要做的是两个部分,爬取图片到目录和设置目录图片为桌面背景并可以自动切换. 第一部分,下载图片,使 ...

  5. 在 Visual Studio 等编辑器/IDE中自动切换输入法,不需要手动的有没有?

    使用Visual Studio写代码,经常遇到的一个问题就是切换中文输入法麻烦,输入完注释//,要切换到中文,输入完引号,要输入中文,然后还需要切换回来,有没有? 有时候中文输入法忽然失效有没有?明明 ...

  6. jquery背景自动切换特效

    查看效果网址:http://keleyi.com/a/bjad/4kwkql05.htm 本特效的jquery版本只支持1.9.0以下. 代码如下: <!DOCTYPE html PUBLIC ...

  7. jquery叠加页片自动切换特效

    查看效果:http://keleyi.com/keleyi/phtml/jqtexiao/34.htm 下面是HTML代码: <!DOCTYPE html> <html xmlns= ...

  8. Android中仿淘宝首页顶部滚动自定义HorizontalScrollView定时水平自动切换图片

    Android中仿淘宝首页顶部滚动自定义HorizontalScrollView定时水平自动切换图片 自定义ADPager 自定义水平滚动的ScrollView效仿ViewPager 当遇到要在Vie ...

  9. ios基础篇(二十三)—— 定时器NSTimer与图片的自动切换

    一.NSTimer NSTimer是一个能在从现在开始到后面的某一个时刻或者周期性的执行我们指定的方法的对象.可以按照一定的时间间隔,将制定的信息发送给目标对象.并更新某个对象的行为.你可以选择在未来 ...

随机推荐

  1. 【英宝通Unity4.0公开课学习 】(二)场景创建

    本讲共四节,貌似讲课老师的速度变快了,2倍速听不清了...调成了1.7倍...老师果然越来越熟练了啊! 而且最开始的萌妹纸也不再出现在视频里了,我当时还想着完全可以换成老师自己提问嘛! 不过有妹纸声音 ...

  2. sibling

    sibling 英 ['sɪblɪŋ] 美 ['sɪblɪŋ] 名词. 兄,弟,姐,妹网络. 兄弟,兄弟姐妹,同胞变形. 复数:siblings

  3. 兼容多浏览器的网页复制插件(ZeroClipboard)

    前言: 常规利用JS编写的网页复制功能是最简单的方法,但是只对IE有效,无法做到兼容其它浏览器,对其他浏览器也就只能弹窗提示用户手动复制了. <script type="text/ja ...

  4. 安装tftp服务器进行文件传输

    1. 安装: sudo apt-get install tftp-hpa tftpd-hpa ps: tftpd是服务器,tftp是客户端,客户端能发送和获取,服务器不能动. 2. 配置文件: sud ...

  5. 【校招面试 之 C/C++】第7题 C++构造函数不能是虚函数的原因

    1.虚拟函数调用只需要“部分的”信息,即只需要知道函数接口,而不需要对象的具体类型.但是构建一个对象,却必须知道具体的类型信息.如果你调用一个虚拟构造函数,编译器怎么知道你想构建是继承树上的哪种类型呢 ...

  6. 21-js 实现评论时间格式转化

    js里面要用可以用伊尔表达式,循环是用js: document.getElementById("${pj.pltime }").innerHTML = dateToGMT(&quo ...

  7. jqueryAjax的使用

    1. 导入等下我们要使用的文件AjaxMsgHelper.cs和DataHelper.cs他们的代码如下 using System;using System.Collections.Generic;u ...

  8. 构造函数constructor 与析构函数destructor(三)

    (1)构造函数初始化列表: 1 class Test{ 2 int i; 3 public: 4 Test(int vi):i(vi){}//这里的从冒号开始,到右大括号结束,这一段是构造函数初始化列 ...

  9. 着重基础之—Spring Boot 编写自己的过滤器

    Spring Boot 编写自己的"过滤器" 又好久没有写博客进行总结了,说实话,就是 "懒",懒得总结,懒得动.之所以写这篇博客,是因为最近对接公司SSO服务的时候,需要自定义拦 ...

  10. C#和MatLab的混合编程(充分利用二者的优势)

    C#和MatLab的混合编程,充分利用了winform的直观显示和matlab的强大计算能力.在此以一个小例子的形式给大家讲述一下二者混合编程的实现. 一.软件的配置说明 C#版本:VS2010:Ma ...