zoukankan      html  css  js  c++  java
  • 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,可以是本地的图像完整路径,也可以是网络图片地址。

     

  • 相关阅读:
    DML、DDL、DCL的区别
    exe文件图标不见了,教你win10桌面EXE文件图标不见了如何解决
    js获取近十二个月
    关于tomcat中的三个端口的作用及其相关细节
    js判断对象是否为空对象的几种方法
    解决myeclipse validation验证javascript导致速度变慢的现象
    jQuery基础教程之is()方法和has() 方法
    2015年6月发布了ECMAScript6版本
    http系列--从输入 URL 到页面加载完成的过程
    一篇文看懂Hadoop
  • 原文地址:https://www.cnblogs.com/hjxzjp/p/7694669.html
Copyright © 2011-2022 走看看