È relativamente semplice disporre di una colonna di tipo DataGridViewImageColumn
in alcune celle.
Tutto quello che devi fare è sostituire una cella desiderata con un DataGridViewTextBoxCell
.
Così, per esempio, se si aggiunge la seguente colonna di immagine alla mia griglia:
DataGridViewImageColumn imageColumn = new DataGridViewImageColumn();
imageColumn .Name = "ImageColumn";
imageColumn .HeaderText = "An Image!";
Image i = Image.FromFile(@"C:\Pictures\TestPicture.jpg");
imageColumn.Image = i;
dataGridView1.Columns.Add(imageColumn);
è possibile sostituire una determinata cella con il testo in questo modo (qui in un gestore di tasto, ma si potrebbe anche fare da qualche parte come all'interno di un gestore completo di dati).
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.Rows[3].Cells["ImageColumn"] = new DataGridViewTextBoxCell();
dataGridView1.Rows[3].Cells["ImageColumn"].Value = "Some text!";
}
Questa soluzione lascia un po 'di lavoro per voi, se si desidera che le immagini differenti (è necessario associare a una proprietà immagine tipo di) e se si desidera che il testo diverso. Poiché la proprietà Value di una colonna di immagini è di tipo Image, non è possibile utilizzare la stessa associazione.
È possibile creare la propria colonna immagine sovrascritta che ha gestito questo, ma sarebbe un po 'di lavoro, che potrebbe non ripagarsi da solo rispetto semplicemente impostando il valore per le celle in cui si desidera il testo direttamente.
fonte
2012-07-14 14:56:24
pubblicare il tuo markup aspx qui –
ref1c - stai confondendo righe e colonne nella tua domanda? Per avere immagini e testo sulla stessa riga (in colonne diverse) è banale, basta avere un'immagine e una colonna di testo. Avere una colonna con entrambe le immagini e il testo è un po 'più complicato. Sto lavorando a una risposta per questo ora. –