Как я могу добавить определенные изображения в ImageColumn в DataGridView на основе текста в определенном столбце?Изображение DataGridViewImageColumn на основе текста в определенном столбце
пример:
Column1 Столбец2 Column3 ImageColumn
сайт название информация логотип
Я хочу, чтобы логотип/изображение, которое будет изменено и показать «правильный» логотип для каждого веб-сайта, а не один и тот же образ для всех веб-сайты.
Теперь у меня есть это, чтобы добавить красивые логотипы, но он просто добавляет один и тот же логотип на каждую строку.
Dim img As New DataGridViewImageColumn()
Dim inImg As Image = PictureBox1.Image
img.Image = inImg
DataGridView1.Columns.Add(img)
img.HeaderText = "Website"
img.Name = "img"
я попытался обернуть этот код в «если dataGridView1 ........ содержит», но я только создающие ошибки. Может кто-нибудь мне немного рассказать, как решить эту проблему?
Спасибо :-)
UPDATE: я теперь использовать этот код:
Private Sub DataGridView1_CellFormatting(sender As Object, e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
If DataGridView1.Rows.Count > 0 Then
If e.ColumnIndex = 2 Then
Dim LINK = DataGridView1.Rows(e.RowIndex).Cells(0).Value
If LINK.ToString.Contains("test.nl") Then
DataGridView1.Rows(e.RowIndex).Cells(5).Value = PictureBox1.Image
End If
End If
End If
End Sub
, кажется, работает, но когда я использую этот код ничего не меняется с изображениями:
Private Sub DataGridView1_CellFormatting(sender As Object, e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
If DataGridView1.Rows.Count > 0 Then
If e.ColumnIndex = 2 Then
Dim LINK = DataGridView1.Rows(e.RowIndex).Cells(0).Value
If LINK.ToString.Contains("test.nl") Then
DataGridView1.Rows(e.RowIndex).Cells(5).Value = PictureBox1.Image
End If
If LINK.ToString.Contains("test.com") Then
DataGridView1.Rows(e.RowIndex).Cells(5).Value = PictureBox2.Image
End If
End If
End If
End Sub
все изображения одинаковы ... все они используют pictureboximage2. Я предполагаю, что я делаю что-то неправильно, но похоже, что я на правильном пути. Ударь меня с советами или фрагментах, если вы хотите, спасибо :-)
Не имеет значения, каковы типы столбцов, если вы хотите установить значение в одном столбце на основе другого столбца, тогда вы обрабатываете событие CellValueChanged для сетки, обнаруживаете изменение в исходный столбец, а затем установите значение в столбце назначения той же строки. – jmcilhinney
Вы загружаете со стола? – Codexer
@jmcilhinney отлично, теперь мне просто нужно выяснить, как и какой код использовать в событии CellValueChanged ;-) – Maarten