2012-07-19 3 views
1

Я пытаюсь найти каждый DatagridviewImageCell и установить его свойство ImageLayout на DataGridViewImageCellLayout.Zoom, поэтому изображение в этой ячейке будет увеличено. Я использую этот код, но получаю ошибку: Unable to cast object of type 'System.Windows.Forms.DataGridViewRow' to type 'System.Windows.Forms.DataGridViewImageCell'. здесь: (DataGridViewImageCell Imgrow in dataGridView1.Rows. Это код, который я использую.Поиск типа ячейки datagridview в C#?

    foreach (DataGridViewImageCell Imgrow in dataGridView1.Rows) 
       {      
        if (dataGridView1.Rows[a].Cells[1].Value == "Image") 
        { 
         Imgrow.ImageLayout = DataGridViewImageCellLayout.Zoom; 
        } 
       } 

Как это исправить? Кроме того, столбец является столбцом texbox, но я использую это для замены ячейки.

int a = 0; 
dataGridView1.Rows.Insert(0, 1); 
dataGridView1.Rows[a].Cells["Column1"] = new DataGridViewImageCell(); 
dataGridView1.Rows[a].Cells["Column1"].Value = picturebox1.Image; 

ответ

3

Необходимо провести цикл над строками с помощью объекта строки, а затем перебрать по ячейкам объект ячейки.

Что-то вроде этого:

foreach (DataGridViewRow dr in dataGridView1.Rows) { 
    foreach (DataGridViewCell dc in dr.Cells) { 
    if (dc.GetType() == typeof(DataGridViewImageCell)) { 
     ((DataGridViewImageCell)dc).ImageLayout = DataGridViewImageCellLayout.Zoom; 
    } 
    } 
} 
Смежные вопросы