C# DataGridViewLinkColumn имеет значение ячейки как изображение вместо текста (кликабельное / связываемое изображение)

Возможно иметь изображение вместо текста в DataGridViewLinkColumn. В приведенном ниже примере вместо текста "поиск" мы можем иметь значок поиска в ячейке!?

    private void Form1_Load(object sender, EventArgs e)
    {
        DataGridViewLinkColumn c = new DataGridViewLinkColumn();
        dataGridView1.Columns.Add(c);
        dataGridView1.Rows.Add();
        dataGridView1.Rows[0].Cells[0].Value = "search";
    }

Когда я пытаюсь присвоить изображение значению ячейки, оно не отображается, а отображается как "System.Drawing.Bitmap".

1 ответ

Решение

Используйте стандарт DataGridViewImageColumn чтобы отобразить изображения, а затем создать DataGridView_CellMouseMove событие для DataGridView со следующим кодом

    private void DataGridView1_CellMouseMove(object sender, DataGridViewCellMouseEventArgs e)
    {
        if (e.ColumnIndex == DataGridViewImageColumn1.Index)
        {
            Cursor = Cursors.Hand;
        }
        else
        {
            Cursor = Cursors.Default;
        }
    }

Добавьте логику для обнаружения строк, если требуется.

DataGridView_CellMouseClick события по-прежнему будут необходимы для ваших ссылок.

И вам также может понадобиться DataGridView_MouseLeave событие, чтобы убедиться, что вы установили Cursor вернуться к значению по умолчанию.

Другие вопросы по тегам