You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何通过ComboBox选择电影标题在PictureBox显示对应海报

实现方案

WinForm 中的 ComboBox 控件支持绑定自定义对象,只需指定显示的属性字段,即可实现显示电影标题、同时存储对应海报路径的需求,无需暴露文件路径给用户。

步骤1:定义电影信息存储类

新增一个简单的自定义类,用来关联电影标题和海报路径:

public class MovieItem
{
    // 用于显示在ComboBox下拉选项的电影标题
    public string Title { get; set; }
    // 存储对应的海报完整路径,不会显示在界面上
    public string PosterPath { get; set; }
}

步骤2:修改窗体加载事件逻辑

调整原来的遍历逻辑,生成MovieItem对象加入ComboBox,同时指定显示的属性为Title:

private void Form1_Load(object sender, EventArgs e)
{
    string[] imgs = Directory.GetFiles(@"C:\Users\me\Documents\C# program\Poster");
    // 指定ComboBox显示的内容为MovieItem的Title属性
    comboBox1.DisplayMember = "Title";
    foreach(string file in imgs)
    {
        // 提取不带扩展名的文件名作为电影标题,你有其他标题来源可直接替换该行逻辑
        string movieTitle = Path.GetFileNameWithoutExtension(file);
        comboBox1.Items.Add(new MovieItem
        {
            Title = movieTitle,
            PosterPath = file
        });
    }
}

步骤3:修改选中项变更事件逻辑

选中时取出MovieItem对象,读取PosterPath属性加载海报即可:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    if (comboBox1.SelectedItem is MovieItem selectedMovie)
    {
        pictureBox1.Image = new Bitmap(selectedMovie.PosterPath);
    }
}

注意事项

  • 若代码提示Path类不存在,请在代码文件顶部添加引用using System.IO;
  • 如果电影标题和海报文件名不匹配,你只需替换生成movieTitle的逻辑即可,后续绑定逻辑无需改动。

内容的提问来源于stack exchange,提问作者hahahahahaha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 00:45:03