【问题标题】:How to change an image in a pictureBox when a List item is chosen in a dataGrid [C#] (Visual Studio)在 dataGrid [C#] (Visual Studio) 中选择列表项时如何更改图片框中的图像
【发布时间】:2013-12-08 17:44:46
【问题描述】:

我正在努力在 Visual Studio 2012/13 中创建类似于“Pokedex”的东西(目前它基本上是一个 Pokedex)。它是一个 WinForm 程序,到目前为止,我有一个数据网格,列出了“口袋妖怪”列表编号、名称和类型。我接下来要做的是让一个pictureBox元素在选择特定的dataGrid列表项时显示口袋妖怪的图像(从图像链接列表中提取)(所以如果在dataGrid中选择#4,Charmander,那么我希望它在图片框中显示一张 Charmander 的图片)。

这是迄今为止项目的视觉设计示例:

richTextBox下面的空白处就是pictureBox所在的地方。 Later on the Pokemon's description will also be included in that box when the list item is chosen, but I believe that will be easy to implement once I understand how to call the image at selection.

感谢所有帮助!我现在不包括该项目的代码,因为我不知道什么是有用的。请让我知道需要什么才能更好地理解该项目。

【问题讨论】:

    标签: c# winforms visual-studio-2012 datagrid picturebox


    【解决方案1】:

    您可以将ImageList 控件添加到您的表单并将您的口袋妖怪图片添加到您的ImageList。您可以使用ImageList 的设计器图像集合属性轻松地做到这一点。

    此外,请确保在DataGridView 中将您的图像索引设置为您的口袋妖怪(因此集合中的第一张图片是 Bulbassur,第二张是 Ivysaur 等) - 这将帮助您稍后通过其轻松访问图片索引。

    下一步是将CellEnter 事件附加到您的DataGridView。当一个单元格被聚焦时它会触发。 将此代码添加到事件处理程序:

    private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
    {
        if (e.ColumnIndex == 0)
        {
            pictureBox1.Image = imageList1.Images[e.RowIndex];
        } 
    }
    

    请注意,这只会在您选择任何第一列 (DexNum) 单元格时更改图像。您可以将其更改为您喜欢的任何内容,更改条件。

    我没有做任何验证,你应该这样做,但我假设行数等于图像数。

    【讨论】:

    • 所以此刻,它停止并告诉我不能将索引设置为 0。将其更改为任何其他数字根本不会对程序做任何事情。关于下一步去哪里的任何建议? (完全错误:System.Windows.Forms.dll 中出现“System.ArgumentOutOfRangeException”类型的未处理异常附加信息:InvalidArgument=“0”值对“索引”无效。)
    • 啊,我不知道它是如何修复的,但我搞砸了一点,之后它工作得很好......不知道是什么修复了它,但它最终工作正常。非常感谢您的帮助和支持!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多