0

我正在尝试使用以下代码在 Telerik gridview 中显示图片:

  foreach (var item in radGridView1.Rows)
        {
            try
            {
                item.Cells["column1"].CellElement.Text = "";
                item.Cells["column1"].CellElement.StretchVertically = true;
                item.Cells["column1"].CellElement.ImageLayout = ImageLayout.Zoom;
                item.Cells["column1"].CellElement.ImageAlignment = ContentAlignment.MiddleCenter;
                item.Cells["column1"].CellElement.Image = Image.FromFile("img/1.jpg");
                pictureBox1.Image = Image.FromFile(item.Cells["Picture"].Value.ToString());
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

但是每当我尝试运行应用程序时,我都会收到一条错误消息,抱怨

你调用的对象是空的

它可能有什么问题?!

4

2 回答 2

1

听起来您正在取消引用一个空对象(例如null.SomeProperty)。

您应该在收到错误的行上放置一个断点,然后查看null要取消引用的对象。

于 2012-08-04T05:41:10.417 回答
0

由于 RadGridView CellElements 和 RowElements 等控件中的 Telerik 虚拟化可以为 null。因此,为了格式化某些单元格,例如在 Telerik RadGridView 控件中,我们需要使用“CellFormatting”事件,如下所示:

 private void radGridView1_CellFormatting(object sender, CellFormattingEventArgs e)
        {
            try
            {
                if (e.CellElement.ColumnInfo.HeaderText == "Picture") 
                {
                    e.CellElement.Image = pictureBox1.Image;
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }

当然,同样的方法对于使用 RowFormatting 事件格式化某些行也是有效的。

于 2012-08-04T08:37:04.817 回答