C# 使用pictureBox预览列表框中的图像
我正在使用Winforms创建2D地图编辑器 我希望能够使用pictureBox预览存储在listBox中的资产图像 因此,我目前的代码是C# 使用pictureBox预览列表框中的图像,c#,winforms,casting,C#,Winforms,Casting,我正在使用Winforms创建2D地图编辑器 我希望能够使用pictureBox预览存储在listBox中的资产图像 因此,我目前的代码是 private void listBox_Assets_SelectedIndexChanged(object sender, EventArgs e) { pictureBox1.Image = Image.FromFile(((FileInfo)listBox_Assets.SelectedItem).FullName);
private void listBox_Assets_SelectedIndexChanged(object sender, EventArgs e)
{
pictureBox1.Image = Image.FromFile(((FileInfo)listBox_Assets.SelectedItem).FullName);
}
但是当我选择一个资产时,我会得到这个错误
无法将“System.String”类型的对象强制转换为“System.IO.FileInfo”类型
我到处寻找解决方案,但找不到此错误的答案,非常感谢您的帮助。您可以像这样使用列表框中的文件名,并通过检查文件来保护代码
private void listBox_Assets_SelectedIndexChanged(object sender, EventArgs e)
{
string file = IO.Path.Combine("the directory", listBox_Assets.SelectedItem);
if (IO.File.Exists(file))
pictureBox1.Image = Image.FromFile(file);
}
无需调用
ToString
though如何在不调用ToString的情况下执行此操作?或者我需要在括号之间添加一些东西吗?DonA,这消除了我的施法错误,但现在它说找不到文件,我如何将其定向到正确的位置?我看不到您存储在列表框中的文件名。使用目录并将文件名添加到其中。显示您的代码将项目添加到列表框
。填充列表框的代码出现错误。您通过传递字符串而不是FileInfo对象来调用它的Items.Add()。这是okayish,只需转换为字符串而不是FileInfo。