没啥新东西了,就是遍历和匹配文件名然后获取对象,放到picturebox里面

选中listview中想要查看的图片,然后点击查看按钮,进行↓代码。

if (listView1.SelectedItems.Count > 0)
{
string name = listView1.Items[listView1.SelectedIndices[0]].Text;//选中的文件名
string dpath = fName.Substring(0, fName.LastIndexOf("\\"));//去除掉文件名
DirectoryInfo dti = new DirectoryInfo(dpath);
FileInfo[] file = dti.GetFiles(name);//查找名称和name一样的图片
Bitmap bmp = new Bitmap(file[0].FullName);
pictureBox1.Image = bmp;
pictureBox1.Refresh();
getgridv(name);
}
else
{
MessageBox.Show("请先选中需要查看的图片");
}

循环播放

循环播放用的线程执行,因为用进程执行的话,他会一直执行图片的循环而无法进行其他操作。

在方法中启动线程执行方法,需要在构造中加上Control.CheckForIllegalCrossThreadCalls = false;

然后就是点击按钮,创建并开启线程

if (run==null)
{
  Thread td = new Thread(xunhuan);
  td.Start();
}

      int i = ;
bool bf = true;//判断是否暂停播放
string run = null;//用来判断线程是否在运行
public void xunhuan()
{
run = "run";
if (listView1.SelectedItems.Count > )//如果listview有选中项就从选中项开始循环
{
while (true)
{
if (!bf)
{
break;
}
if (i >= listView1.Items.Count)
{
i = ;
break;
}
if (i >= listView1.SelectedIndices[])
{
cycle(i);//加载图片
System.Threading.Thread.Sleep();
}
i++;
}
}
if (i == )
{
int j = ;
while (true)
{
if (!bf)
{
break;
}
if (j >= listView1.Items.Count)
{
j=;
}
//listView1.Items[j].Focused = true;
cycle(listView1.Items[j].Text);
System.Threading.Thread.Sleep();
j++;
}
}
}

还有一个倒叙循环,和上面基本一样,也是通过线程执行,判断bool是否暂停。

private void daoxu()
{
  run = "daorun";
  int dx = listView1.Items.Count;
  if (listView1.SelectedItems.Count > 0)//如果listview有选中项就从选中项开始循环
  {
    while (true)
    {
      if (!bf)
      {
        break;
      }
      if (dx < 0)
      {
        break;
      }
      if (dx <= listView1.SelectedIndices[0])
      {
        cycle(dx);//加载图片
        System.Threading.Thread.Sleep(300);
      }
      dx--;
    }
  }
  if (dx == listView1.Items.Count)
  {
    int j = listView1.Items.Count - 1;
    while (true)
    {
      if (!bf)
      {
        break;
      }
      if (j < 0)
      {
      break;
      }
      //listView1.Items[j].Focused = true;
      cycle(listView1.Items[j].Text);
      System.Threading.Thread.Sleep(300);
      j--;
    }
  }
}

点击更改bf属性来更改播放状态

if (bf)
{
bf = false;//停止
btn_pause.Text = "停止";
}
else
{
bf = true;//播放
btn_pause.Text = "播放";
run = null;
}

winfrom 循环播放图片的更多相关文章

  1. iOS 用Swipe手势和动画实现循环播放图片

    主要想法 添加3个ImageView展示图片,实现图片的无限循环. 使用Swipe手势识别用户向右或向左滑动图片. 使用CATransition给ImageView.layer添加动画,展示图片更换的 ...

  2. c# pictureBox 循环播放图片

    c# 1.遍历目录 查找图片 2.在 pictureBox 循环播放 public void PlayThread()//CMD_UpdateBtnStatus cmd { Int32 framera ...

  3. iOS scrollview循环播放加缩放

    前些日子一直在研究3d的框架没有时间写博客,不过最后需求改了,也没研究出个啥.这段时间出了新的需求,需要循环播放图片,并且滑动的时候中间的图片有缩放的效果.刚开始想在网上搜索,不过并没有找到合适的de ...

  4. android 自定义无限循环播放的viewPager。轮播ViewPager。实现循环播放 广告,主题内容,活动,新闻内容时。

    前言 实际项目需要一个 播放广告的控件,可能有多个广告图片.每个一段时间更换该图片.简单来说,就是一个 “循环播放图片”的控件. 间隔时间更换图片 一般来说,图片切换时需要有动画效果 需要支持手势,用 ...

  5. 在WPF中显示GIF图片并实现循环播放

    WPF中有一个MediaElement媒体控件,可以来播放媒体,同时也可以显示GIF图片.但看到网上有些人说用MediaElement不能加载作为资源或内嵌的资源的GIF图片,我猜他们一定是在前台用X ...

  6. JS可控制的图片自动循环播放查看效果

    JS可控制的图片自动循环播放查看效果 <html> <head> <title>JS可控制的图片自动循环播放查看效果丨芯晴网页特效丨CsrCode.Cn</t ...

  7. 使用javascript实现图片上下切换效果并且实现顺序循环播放

    <!doctype html><html lang="en"><head> <meta charset="UTF-8" ...

  8. 用jquery写循环播放div的相关笔记 珍贵的总结 -1

    用jquery写循环播放div line-height应用的元素的 层次? line-heig字ht, 叫行高, 仅仅是指 文/文本, 而不管图片. line-height是容器中 文本行 与 文本行 ...

  9. Android播放图片动画

    1.布局文件中添加ImageView <ImageView android:id="@+id/iv_fan" android:layout_width="wrap_ ...

随机推荐

  1. JavaScript中的函数(一)

    javaScript中的函数实际上是对象,每一个函数都是Function类型的实例,和其他引用类型一样具有属性和方法.由于函数是对象,因此函数名实际上也就是一个指向函数对象的指针,也就是函数对象的一个 ...

  2. 云原生应用基金会CNCF

    2006 年 8 月 9 日,埃里克·施密特(EricSchmidt)在搜索引擎大会上首次提出了“云计算”(Cloud Computing)的概念.一转眼十年过去了,它的发展势如破竹,不断渗透当代的 ...

  3. Shell脚本一键安装LNMP环境

    https://sourceforge.net/projects/opensourcefile/files/ Nginx是一款高性能的HTTP和反向代理服务器.Nginx在反向代理,Rewrite规则 ...

  4. linq左连接

    Table1和Table2连接,把Table1的全列出来 var tempData = from a in table1 join b in table2 on a.Id equals b.aId i ...

  5. 【备忘录】yii2高级模板多个应用启用同一个域名多个栏目

    nginx部署方式,两种写法,本人认为第一种写法没有第二种写法优雅 第一种写法配置文件: server { listen ; server_name youban-dev.jqtest.mopon.c ...

  6. laravel Auth token创建于使用

    token 的创建和使用, https://laravelacademy.org/post/3640.html 用户表密码字段验证修改,不只是password https://www.jianshu. ...

  7. composer包php-amqplib

    php-amqplib官方文档 url:http://www.rabbitmq.com/tutorials/tutorial-one-php.html #测试demo: url: http://**. ...

  8. linux tcp server demo

    #include <sys/types.h> #include <sys/socket.h> #include <string.h> #include <ne ...

  9. 为什么我tracert经过H3C设备的时候,老是*号,不回包

    两条命令搞定  ip unreachables  en   ip ttl-expires enable  

  10. 启动 Eclipse 报错 “An internal error occurred during: "Initializing Java Tooling". java.lang.NullPointerException”

    之前在线升级了Eclipse,由于网络/或者是设置问题,在升级完成后启动Eclipse出线上述错误... 解决方法 1. 删除目录工作目录下面的.project文件夹: 如下图: 2. 关闭Eclip ...