Datagridview показать и скрыть изображение в ячейке заголовка или изменить цвет границы в ячейке заголовка - PullRequest
0 голосов
/ 01 августа 2011

Как я могу добавить маленький значок в ячейку заголовка, не меняя его формат и текст?Я хочу включить / выключить отображение / скрытие изображения в ячейке заголовка по щелчку правой кнопкой мыши.

Моя проблема не в событиях мыши, но я не знаю, как показать и скрыть изображение в ячейке заголовка.Если это невозможно, я бы хотел переключить цвет границы или что-то еще, чтобы пользователь мог знать, что что-то произошло.

Я уже пробовал код, подобный следующему: Как отобразить изображение в сетке данныхзаголовок столбца? .

мой код:

if (e.ColumnIndex == 1 && e.RowIndex == -1)
            {
                e.PaintBackground(e.ClipBounds, false);


                Point pt = e.CellBounds.Location;  // where you want the bitmap in the cell

                int offset = (e.CellBounds.Width - this.imageList1.ImageSize.Width) / 2;
                pt.X += offset;
                pt.Y += 1;
                this.imageList1.Draw(e.Graphics, pt, 0);


                e.Handled = true;




            }

Небольшая проблема заключается в том, что этот код удаляет текст CellHeaders, это я мог бы исправить, сохранив имена столбцов в массиве строки отобразить его с помощью e.ColumnIndex:

Font drawFont = new Font("Microsoft Sans Serif", 10);
SolidBrush drawBrush = new SolidBrush(Color.Black);

e.Graphics.DrawString(storredColNames[e.ColumnIndex], drawFont, drawBrush, e.CellBounds);

Есть ли другой способ сохранить имена Col?

Я пробовал подобные вещи, но кажется, что я могу получить доступ к изображению простокогда он рисует клетки, но мне нужно иметь возможность получить доступ к изображению, когда я щелкаю правой кнопкой мыши, чтобы показать и скрыть его.Есть ли способ сделать это?

...