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. Tomb Raider(暴力模拟)

    Tomb Raider https://hihocoder.com/problemset/problem/1829?sid=1394836 时间限制:1000ms 单点时限:1000ms 内存限制:2 ...

  2. python之socket运用2

    今天实现在客户端和服务端之间进行持续的通信 客户端代码 import socket ip_port = ("127.0.0.1",3000) sk = socket.socket( ...

  3. mysql中GROUP_CONCAT的使用

    现在有三个表,结构如下: cate表 CREATE TABLE `cate` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', ...

  4. spring框架之AspectJ的XML方式完成AOP的开发

    1. 步骤一:创建JavaWEB项目,引入具体的开发的jar包 * 先引入Spring框架开发的基本开发包 * 再引入Spring框架的AOP的开发包 * spring的传统AOP的开发的包 * sp ...

  5. Asia Stock Exchanges[z]

    Asia Stock Exchanges July 7, 2009 This article is to summarise the trading rules of some Asia stocke ...

  6. Codeforces 670D1. Magic Powder - 1 暴力

    D1. Magic Powder - 1 time limit per test: 1 second memory limit per test: 256 megabytes input: stand ...

  7. mupdf编译snprintf冲突问题

    mupdf-1.6-source\thirdparty\jbig2dec\config_win32.h //#  define snprintf _snprintf

  8. Storm 系列(一)基本概念

    Storm 系列(一)基本概念 Apache Storm(http://storm.apache.org/)是由 Twitter 开源的分布式实时计算系统. Storm 可以非常容易并且可靠地处理无限 ...

  9. vue的过滤器

    Vue.Js 提供了强大的过滤器API,能够对数据进行各种过滤处理,返回需要的结果 vue的过滤器一般在JavaScript 表达式的尾部,由“|”符号指示: 过滤器可以让我们的代码更加优美,一般可以 ...

  10. 2018.10.19 bzoj1057: [ZJOI2007]棋盘制作(悬线法)

    传送门 悬线法板题. 如果只求最大矩形面积那么跟玉蟾宫是一道题. 现在要求最大正方形面积. 所以每次更新最大矩形面积时用矩形宽的平方更新一下正方形答案就行了. 代码: #include<bits ...