我正在尝试使用以下代码在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);
}
}
但每当我尝试运行该应用程序时,都会收到一条抱怨
的错误消息对象引用未设置为对象的实例
它可能有什么问题?!
答案 0 :(得分:1)
听起来你正在取消引用一个空对象(例如null.SomeProperty
)。
您应该在收到错误的行上放置断点,并查看您要取消引用的null
个对象。
答案 1 :(得分:0)
由于Radrik中的Telerik Virtualization(例如RadGridView CellElements和RowElements)可以为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事件格式化某些行时,同样的方法也是有效的。