1. 程式人生 > >C# picturebox顯示圖片和windows media play顯示視訊

C# picturebox顯示圖片和windows media play顯示視訊

操作環境 win10+vs2015

新增空間的話picturebox基本是自帶的 media play需要在左側工具欄右鍵選擇項 —com元件裡面新增windows media play(位置比較靠後直接往後拖)

新增後左側工具欄—公共空間會出現 windows media play空間可以拖到form1 

新增的控制元件如圖下

剩下的我就直接把程式碼發上來

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     }

想到哪裡寫那裡吧