首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更改datagridview中图像按钮列中的图像

更改datagridview中图像按钮列中的图像
EN

Stack Overflow用户
提问于 2010-10-22 19:11:44
回答 2查看 3.2K关注 0票数 2

我想知道是否有人曾经设法找到在模板字段中有一个datagridview image按钮列的方法,它根据行中的某些数据元素在不同的行上显示不同的图像。我们的应用程序需要显示一系列针对帐户列收取的费用,这些费用要么小于500,500到1000,要么大于1000。这些费用中的一些是全额收费的,另一些是部分收费的,还有一些根本不收费。用户希望看到一个简单的3状态图形,它将传达简单的信息:完全充电、部分充电或不充电。听起来很简单,但我还没有找到一种方法来做到这一点。每次我尝试修改单个单元格的图形时,它似乎都想更改所有行的图形。

有什么办法解决这个问题吗?

谢谢,

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-22 19:45:09

您可以使用以下命令完成此操作

代码语言:javascript
运行
复制
<TemplateField>
    <ItemTemplate>
        <asp:ImageButton runat="server" ImageUrl='<%# GetImage(Eval("check") as string) %>' />
    </ItemTemplate>
</TemplateField>

其中GetImage()是代码隐藏中的一个方法:

代码语言:javascript
运行
复制
protected string GetImage(string check)
{
    if ((check == "2") || (check == "null") || (check == "3") || (check == "-1"))
    {
        return "../Interbacs/images/error.gif";
    }
    else if (check == "1") 
    {
        return "../Interbacs/images/ok.png"
    }

    return "what?";
}

这也许可以做得更“漂亮”一点,但我希望你能理解。

票数 1
EN

Stack Overflow用户

发布于 2010-10-22 19:52:20

您可以在datagridview CellPainting中更改图像。

代码语言:javascript
运行
复制
eg:

 private void datagridview_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
        { 
           if (e.ColumnIndex == 1 && e.RowIndex >= 0)
                {        

                  if (Convert.ToInt32 (datagridview.Rows[e.RowIndex].Cells["columnName"].Value)<500)
                        {
                            e.Paint(e.CellBounds, DataGridViewPaintParts.All);
                            e.Graphics.DrawImage('Give Image path here', e.CellBounds.Left + 5, e.CellBounds.Top + 5);

                        }
                 }
         } 

或检查此http://www.codeproject.com/KB/grid/DGV_ImageButtonCell.aspx/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3996222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档