C#通过picturebox显示图片和控件显示视频

操作环境 win10+vs2015

添加空间的话picturebox基本是自带的 media play需要在左侧工具栏右键选择项 —com组件里面添加windows media play(位置比较靠后直接往后拖)

C#通过picturebox显示图片和控件显示视频_第1张图片

添加后左侧工具栏—公共空间会出现 windows media play空间可以拖到form1

添加的控件如图下

C#通过picturebox显示图片和控件显示视频_第2张图片

剩下的我就直接把代码发上来

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.IO; //输入输出
using System.Threading; //暂停
using System.Diagnostics; //进程类

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

    private void button1_Click(object sender, EventArgs e)              //btton1 选择一个文件夹 显示路径
    {
        string defaultPath = "";                                                    //定义字符类型存放路径

        FolderBrowserDialog dialog = new FolderBrowserDialog();                    //窗口组件    dialog

        dialog.Description = "请选择一个文件夹";                                   //打开的文件夹浏览对话框上的描述  

        dialog.ShowNewFolderButton = false;                                        //是否显示对话框左下角 新建文件夹 按钮,默认为 true  
                                                                                   //首次defaultPath为空,按FolderBrowserDialog默认设置(即桌面)选择  
        if (defaultPath != "")
        {
            dialog.SelectedPath = defaultPath;                  //设置此次默认目录为上一次选中目录  
        }
        if (dialog.ShowDialog() == DialogResult.OK)             //按下确定选择的按钮  
        {
            try
            {
                defaultPath = dialog.SelectedPath;                  //将选中的路径存放到上面建立的字符类变量中
                MessageBox.Show(defaultPath);                       //弹出消息框 显示选定路径
                textBox1.Text = defaultPath;                         //textbox显示路径
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);//显示报错信息
            }
        }
    }

    private void button2_Click(object sender, EventArgs e)             //button2 选择一个图像显示出来
    {
        OpenFileDialog Image = new OpenFileDialog();             //建立一个读取流
        string Imagepath = string.Empty;     		             //定义路径名变量  
        Image.Multiselect = true;                                //设定是否可以选择多个文件
        Image.Filter = "Image Files (*.tif;*.jpg;*.bmp)|*.tif;*.jpg;*.bmp";
        if (Image.ShowDialog() != DialogResult.Cancel)
        {
            try
            {
                Imagepath = Image.FileName;//点击后获取的图片地址
                pictureBox1.Load(Imagepath);//通过picturebox显示出图片
                MessageBox.Show(Imagepath);  //通过messagebox显示路径
                textBox1.Text = Imagepath;//在textbox显示路径

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);//显示报错信息
            }
        }
    }
    private void button3_Click(object sender, EventArgs e)            //读取一个文件夹下所有文件名
    {
        string defaultPath = "";                                             //定义字符类型存放路径

        FolderBrowserDialog dialog = new FolderBrowserDialog();                //窗口组件    dialog

        dialog.Description = "请选择一个文件夹";                               //打开的文件夹浏览对话框上的描述  

        dialog.ShowNewFolderButton = false;                                    //是否显示对话框左下角 新建文件夹 按钮,默认为 true  
                                                                               //首次defaultPath为空,按FolderBrowserDialog默认设置(即桌面)选择  

        if (defaultPath != "")
        {
            dialog.SelectedPath = defaultPath;                   //设置此次默认目录为上一次选中目录  
        }
        if (dialog.ShowDialog() == DialogResult.OK)              //按下确定选择的按钮  
        {
            try
            {
                defaultPath = dialog.SelectedPath;                  //将选中的路径存放到上面建立的字符类变量中 

                MessageBox.Show(defaultPath);                       //弹出消息框 显示选定路径

                DirectoryInfo dir = new DirectoryInfo(defaultPath);//使用DirectoryInfo用于搜索文件夹·

                FileInfo[] finfo = dir.GetFiles();                  //新实例,是文件的路径。

                string fnames = string.Empty;

                for (int i = 0; i < finfo.Length; i++)
                {
                    fnames += finfo[i].FullName + " \r\n ";              //存储路径
                    textBox1.Text = fnames;                             //显示路径
                    Application.DoEvents();                            //实时显示
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);//显示报错信息
            }
        }
    }

    private void button4_Click(object sender, EventArgs e)              //读取一个文件夹下所有图片文件轮流播放
    {
        string defaultPath = "";                                                    //定义字符类型存放路径

        FolderBrowserDialog dialog = new FolderBrowserDialog();                    //窗口组件    dialog

        dialog.Description = "请选择一个文件夹";                                   //打开的文件夹浏览对话框上的描述  

        dialog.ShowNewFolderButton = false;                                        //是否显示对话框左下角 新建文件夹 按钮,默认为 true  
                                                                                   //首次defaultPath为空,按FolderBrowserDialog默认设置(即桌面)选择  

        if (defaultPath != "")
        {
            dialog.SelectedPath = defaultPath;                  //设置此次默认目录为上一次选中目录  
        }
        if (dialog.ShowDialog() == DialogResult.OK)             //按下确定选择的按钮  
        {
            try
            {
                defaultPath = dialog.SelectedPath;                  //将选中的路径存放到上面建立的字符类变量中 

                MessageBox.Show(defaultPath);                       //信息框显示路径

                DirectoryInfo dir = new DirectoryInfo(defaultPath);

                FileInfo[] finfo = dir.GetFiles();

                string fnames = string.Empty;
                string name1 = string.Empty;
                for (int i = 0; i < finfo.Length; i++)
                {
                    name1 = finfo[i].Name.ToLower();           //定义变量暂时存放文件名
                    if (name1.EndsWith(".tif") || name1.EndsWith(".bmp"))  //对文件后缀进行判断是否是图片
                    {
                        fnames += finfo[i].FullName + " \r\n ";         //存放路径以便于textbox显示 
                        textBox1.Text = fnames;                         //显示
                        pictureBox1.Load(finfo[i].FullName);            //显示图片
                        Thread.Sleep(100);                              //0.1s延迟
                        Application.DoEvents();                         //设定实时操控
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);//显示报错信息
            }
        }
    }

    private void button5_Click(object sender, EventArgs e)   //通过控件读取播放视频
    {
        OpenFileDialog vedio = new OpenFileDialog();             //建立一个读取流
        string videopath = string.Empty;     		             //定义路径名变量  
        vedio.Multiselect = true;                                //设定是否可以选择多个文件
        vedio.Filter = "(mp3,wav,mp4,mov,wmv,mpg)|*.mp3;*.wav;*.mp4;*.mov;*.wmv;*.mpg|all files|*.*";
        if (vedio.ShowDialog() != DialogResult.Cancel)
        {
            try
            {
                videopath = vedio.FileName;//点击后获取的video地址
                axWindowsMediaPlayer1.URL = (videopath);//设定空间URL
                textBox1.Text = videopath;//在textbox显示路径
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);//显示报错信息
            }
        }
    }

    private void button6_Click(object sender, EventArgs e)
    {
        OpenFileDialog work = new OpenFileDialog();              //建立一个读取流
        string workpath = string.Empty;     		             //定义路径名变量  
        work.Multiselect = true;                                //设定是否可以选择多个文件
        work.Filter = "all|";
        if (work.ShowDialog() != DialogResult.Cancel)
        {
            try
            {
                workpath = work.FileName;//点击后获取的地址
                MessageBox.Show(workpath);  //通过messagebox显示路径
                textBox1.Text = workpath;//在textbox显示路径
                Process work1 = new Process();   //新建进程
                work1.StartInfo.FileName = workpath; //设定打开路径
                work1.StartInfo.CreateNoWindow = true;//是否在新窗口打开进程
                work1.Start();//打开程序
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);//显示报错信息
            }
        }
    }//通过选定文件打开程序

    private void button8_Click(object sender, EventArgs e)             //提前绝对地址打开程序
    {
        Process pr = new Process();//声明一个进程类对象
        //pr.StartInfo.FileName = @"C:\Users\Darkpain\Desktop\IMG_5865.MP4";//选定后复制的路径
        // pr.StartInfo.FileName = @"C:\Users\Darkpain\Desktop\IMG_5865.MP4";//                         这个下滑线有毒 找了半天  直接属性复制的下滑线会导致无法识别到程序
        pr.StartInfo.FileName = @"C:\Users\Darkpain\Desktop\Microsoft Edge.lnk";
        MessageBox.Show("不知道charm路径就随便打开");


        pr.StartInfo.CreateNoWindow = true;
        pr.Start();//运行QQ
        Process work1 = new Process();
    }

    private void button7_Click(object sender, EventArgs e)
    {
        System.Diagnostics.Process.Start("iexplore.exe", "www.baidu.com");

    }
}

}
主要的控件解析

FolderBrowserDialog dialog = new FolderBrowserDialog(); 使用FolderBrowserDialog类实现选择打开文件夹

string defaultPath = “”;

FolderBrowserDialog dialog = new FolderBrowserDialog();

//打开的文件夹浏览对话框上的描述
dialog.Description = “请选择一个文件夹”;

//是否显示对话框左下角 新建文件夹 按钮,默认为 true
dialog.ShowNewFolderButton = false;

//首次defaultPath为空,按FolderBrowserDialog默认设置(即桌面)选择
if (defaultPath != “”)
{
//设置此次默认目录为上一次选中目录
dialog.SelectedPath = defaultPath;
}
//当你按下确定选择的时候
if (dialog.ShowDialog() == DialogResult.OK)
{

defaultPath = dialog.SelectedPath;   //选中的地址咯

}
public string Description { get; set; }
// 获取或设置对话框中在树视图控件上显示的说明文本。

public Environment.SpecialFolder RootFolder { get; set; }

// 获取或设置从其开始浏览的根文件夹。 默认值为 用户的桌面。

public string SelectedPath { get; set; }

// 获取或设置用户选定的路径。

// 对话框中选定的第一个文件夹或用户选定的最后一个文件夹的路径。默认值为空字符串 ("")。

public bool ShowNewFolderButton { get; set; }

// 获取或设置一个值,该值指示“新建文件夹”按钮是否显示在文件夹浏览对话框中。

// 如果“新建文件夹”按钮显示在对话框中,则为 true;否则为 false。默认值为 true。

public override void Reset();

// 将属性重置为其默认值。

protected override bool RunDialog(IntPtr hWndOwner);

运行? 这个没看 等下仔细看

OpenFileDialog OpenFileDialog1= new OpenFileDialog(); //System.Windows.Forms.OpenFileDialog 类的实例。

public override bool CheckFileExists { get; set; }
// 获取或设置一个值,该值指示如果用户指定不存在的文件名,对话框是否显示警告。
// 返回结果:
// 如果对话框在用户指定的文件名不存在时显示警告,则为 true;反之,则为 false。默认值为 true。

public bool Multiselect { get; set; }

    //     获取或设置一个值,该值指示对话框是否允许选择多个文件。
    // 返回结果:
    //     如果对话框允许同时选定多个文件,则为 true;反之,则为 false。默认值为 false。

public bool ReadOnlyChecked { get; set; }

    //     获取或设置一个值,该值指示是否选定只读复选框。
    // 返回结果:
    //     如果选中了只读复选框,则为 true;反之,则为 false。默认值为 false。

public string SafeFileName { get; }

    //     获取对话框中所选文件的文件名和扩展名。文件名不包含路径。
    // 返回结果:
    //     对话框中所选文件的文件名和扩展名。文件名不包含路径。默认值为空字符串。

public string[] SafeFileNames { get; }

    //     获取对话框中所有选定文件的文件名和扩展名的数组。文件名不包含路径。
    // 返回结果:
    //     对话框中所有选定文件的文件名和扩展名的数组。文件名不包含路径。如果未选择任何文件,则返回空数组。

public bool ShowReadOnly { get; set; }

    //     获取或设置一个值,该值指示对话框是否包含只读复选框。
    // 返回结果:
    //     如果对话框包含只读复选框,则为 true;否则为 false。默认值为 false。

public Stream OpenFile();
// 打开用户选定的具有只读权限的文件。该文件由 System.Windows.Forms.FileDialog.FileName 属性指定。
// 返回结果:
// 指定用户所选定的只读文件的 System.IO.Stream。
// 异常:
// T:System.ArgumentNullException:
// 文件名为 null。

public override void Reset();

    // 摘要:
    //     将所有属性重新设置为其默认值。

public string Filter { get; set; } 这个是 System.Windows.Forms继承过来的等下在列出来
// 摘要:
// 获取或设置当前文件名筛选器字符串,该字符串决定对话框的“另存为文件类型”或“文件类型”框中出现的选择内容。
// 返回结果:
// 对话框中可用的文件筛选选项。
// 异常:
// T:System.ArgumentException:
// Filter 格式无效。

.WinForm中窗体显示
显示窗体可以有以下2种方法:
Form.ShowDialog方法 (窗体显示为模式窗体)
Form.Show方法 (窗体显示为无模式窗体)

2者具体区别如下:
1.在调用Form.Show方法后,Show方法后面的代码会立即执行
2.在调用Form.ShowDialog方法后,直到关闭对话框后,才执行此方法后面的代码
3.当窗体显示为模式窗体时,单击“关闭”按钮会隐藏窗体,并将DialogResult属性设置为DialogResult.Cancel
与无模式窗体不同,当用户单击对话框的关闭窗体按钮或设置DialogResult属性的值时,不调用窗体的Close方法
实际上是把窗体的Visible属性赋值为false,隐藏窗体了
这样隐藏的窗体是可以重新显示,而不用创建该对话框的新实例
因为未关闭窗体,所以在应用程序不再需要该窗体时,请调用该窗体的Dispose方法

还有就是选择框的返回值

// 摘要:
//     指定标识符以指示对话框的返回值。

public enum DialogResult
{
    //
    // 摘要:
    //     从对话框返回了 Nothing。这表明有模式对话框继续运行。
    None = 0,
    //
    // 摘要:
    //     对话框的返回值是 OK(通常从标签为“确定”的按钮发送)。
    OK = 1,
    //
    // 摘要:
    //     对话框的返回值是 Cancel(通常从标签为“取消”的按钮发送)。
    Cancel = 2,
    //
    // 摘要:
    //     对话框的返回值是 Abort(通常从标签为“中止”的按钮发送)。
    Abort = 3,
    //
    // 摘要:
    //     对话框的返回值是 Retry(通常从标签为“重试”的按钮发送)。
    Retry = 4,
    //
    // 摘要:
    //     对话框的返回值是 Ignore(通常从标签为“忽略”的按钮发送)。
    Ignore = 5,
    //
    // 摘要:
    //     对话框的返回值是 Yes(通常从标签为“是”的按钮发送)。
    Yes = 6,
    //
    // 摘要:
    //     对话框的返回值是 No(通常从标签为“否”的按钮发送)。
    No = 7
}

想到哪里写那里吧

你可能感兴趣的:(C#)