C# winform picturebox控件显示图片问题 怎么使picturebox在登录学号10001时显示本地文件夹里10001.jpg
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# winform picturebox控件显示图片问题 怎么使picturebox在登录学号10001时显示本地文件夹里10001.jpg相关的知识,希望对你有一定的参考价值。
登录学号10002时又显示本地文件夹里10002.jpg
首先获取学号
string studentNUM = textBox1.Text;合成路径
显示图片,两种方法
pictureBox1.Image = Image.FromFile(ImagePath, true);pictureBox1.ImageLocation = ImagePath;追问
用了你的方法,图片显示不出来呢
追答首先你得看看有没有图片,其次看看路径对应上没
你断点运行一下,看看局部变量 图片地址是否导航正确
我看你下面的回答了,c#不支持上级目录是"~/"这样的形式
你应该用"../"这样的形式
string ImagePath = string.Format(Application.StartupPath + "E:/某校学生信息查询系统/images/0.jpg", inf);
image.ImageLocation = ImagePath;
inf 是学号。路径也是正确的。你写的0.jpg的0是什么意思啊
是占位符,表示这里插入的是后面的inf
string s = string.Format("012", string0, string1, string2);可以无限添加,显得整齐
还有你相对路径写错了,c#中上层路径是"../"而不是"~/"
我才看到。。Application.StartupPath 这个是表示运行文件所在的目录,如果你自己写盘符需要删掉,你没断点执行以下看看路径?
if(学号=="10001")
pictureBox1.Image = Resources.10001;
else if(学号=="10002")
pictureBox1.Image = Resources.10002;追问
可是不止这两个学号啊
C# winform控件之PictureBox详解
PictureBox表示用于显示图像的 Windows 图片框控件https://msdn.microsoft.com/zh-cn/library/system.windows.forms.picturebox.aspx
建立一项目:
完整代码如下 :
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace TestPictureBox { public partial class frmTestPictureBox : Form { public frmTestPictureBox() { InitializeComponent(); this.tbxFilePath.Enabled = false; this.btnPreview.Enabled = false; } /// <summary> /// 选择文件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSelectFile_Click(object sender, EventArgs e) { try { OpenFileDialog openFileDialog = new OpenFileDialog(); //设置打开对话框的初始目录,默认目录为exe运行文件所在的路径 openFileDialog.InitialDirectory = Application.StartupPath; //设置打开对话框的标题 openFileDialog.Title = "请选择图片"; //设置对话框是否记忆之前打开的目录 openFileDialog.RestoreDirectory = true; if (openFileDialog.ShowDialog() == DialogResult.OK) { //获取用户选择的文件完整路径 string filePath = openFileDialog.FileName; //获取对话框中所选文件的文件名和扩展名,文件名不包括路径 string fileName = openFileDialog.SafeFileName; if (isPicture(fileName)) { //获取用户选择的文件,并判断文件大小不能超过2M,fileInfo.Length是以字节为单位的 FileInfo fileInfo = new FileInfo(filePath); if (fileInfo.Length > 2097152) { MessageBox.Show("图片不能大于2M!"); } else { this.tbxFilePath.Text = filePath; this.btnPreview.Enabled = true; } } else { MessageBox.Show("图片不能为空!"); } } } catch (Exception ex) { } } /// <summary> /// 判断是否是图片 /// </summary> /// <param name="fileName"></param> /// <returns></returns> public bool isPicture(string fileName) { bool isFlag = true; try { if (fileName.EndsWith(".gif") || fileName.EndsWith(".jpge") || fileName.EndsWith(".jpg") || fileName.EndsWith(".png")) { return isFlag; } else { isFlag = false; return isFlag; } } catch (Exception ex) { } return isFlag; } /// <summary> /// 预览 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnPreview_Click(object sender, EventArgs e) { try { string filePath = this.tbxFilePath.Text; //根据路径转换为Byte[]数组 byte[] imgBytes = GetImageByPath(filePath); MemoryStream ms = new MemoryStream(imgBytes, 0, imgBytes.Length); //设置图片 Image returnImage = Image.FromStream(ms); //PictureBox 中的图像被拉伸或收缩,以适合PictureBox的大小 this.pictureBox.SizeMode = PictureBoxSizeMode.StretchImage; this.pictureBox.Image = returnImage; } catch (Exception ex) { } } /// <summary> /// 根据图片路径获取字节 /// </summary> /// <param name="filePath"></param> /// <returns></returns> public byte[] GetImageByPath(string filePath) { byte[] buffer = null; try { if (!string.IsNullOrEmpty(filePath)) { FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read); buffer = new byte[fs.Length]; fs.Read(buffer, 0, (int)fs.Length); fs.Close(); return buffer; } } catch (Exception ex) { } return buffer; } } }
以上是关于C# winform picturebox控件显示图片问题 怎么使picturebox在登录学号10001时显示本地文件夹里10001.jpg的主要内容,如果未能解决你的问题,请参考以下文章
C# WinForm应用程序,PictureBox控件透明效果的相关问题。