c# 圖像呈現控件PictureBox


      在c#中可以使用PictureBox控件來呈現圖像,圖像資源可以來自文件,也可以是存在內存中的位圖對象。可以顯示本地圖像文件或來自網絡的圖片,也可以來自項目文件中的圖像。

 

從URI加載圖像文件。

  調用Load(同步加載)或者LoadAsync(異步加載)方法都可以從指定的URI加載圖像。如果圖像較大,可以使用LoadAsync方法異步加載,這樣可以保證用戶界面 能夠響應用戶操作,而出現卡死現象

  如果使用異步加載,還可以處理LoadProgressChanged事件,當加載的進度發生改變時就會引發該事件。當圖像被加載改變或取消加載時會發生LoadCompleted事件。

 

1、創建一個工程

2、從工具箱中拖出TextBox作為圖片路徑的輸入,Button作為確認加載的按鈕,PictureBox作為圖片加載的容器

布局如圖

 

 3、添加按鍵事件

 private void button1_Click(object sender, EventArgs e)
        {
            //判斷txtURI字符是否為空
            if (string.IsNullOrWhiteSpace(txtURI.Text))
            {
                MessageBox.Show("請輸入圖像URI", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            //關閉加載按鈕
            button1.Enabled = false;
            //異步加載圖像,加載txtURI的圖像
            pictureBox1.LoadAsync(txtURI.Text);
        }

4、因為我們使用的是異步加載的方式,所以可以添加,LOadProgerssChanged(加載進度)和LoadComplete(加載錯誤)事件

 private void pictureBox1_LoadProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            //顯示進度
            this.lblMsg.Text = string.Format("當前進度:{0}.", e.ProgressPercentage);
        }

        private void pictureBox1_LoadCompleted(object sender, AsyncCompletedEventArgs e)
        {
            //加載錯誤處理事件
            if (e.Error != null)
            {
                lblMsg.Text = "錯誤信息:" + e.Error.Message;
                return;
            }
            //如果取消
            if (e.Cancelled)
            {
                lblMsg.Text = "操作被取消。";
            }
            else
            {
                lblMsg.Text = "加載完成.";
            }
            button1.Enabled = true;
        }

運行程序,在文本框中輸入圖像URI,可以是本地的圖像完整路徑,也可以是網絡圖片地址。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM