Есть ли способ встроить виджет в DataGridViewCell с привязкой к данным, когда он не находится в режиме редактирования?
Например, мы хотим отобразить существующий виджет календаря в ячейке. Эта ячейка содержит список дат, разделенных запятыми. Мы хотим показать календарь вместо текста.
Мы могли бы создать настраиваемую ячейку и переопределить метод Рисовать, чтобы он рисовал календарь в ячейке, но это не обработало бы всплывающую подсказку при наведении указателя мыши, которая у нас уже есть в существующем виджете календаря.
[Обновлять] Я попробовал предложение TcKs, но не смог создать рабочее решение. См. Комментарии к этому ответу.





Вы можете вместо рисования календаря взять элемент управления календарем, установить для них сетку как родительскую и установить для них такие же границы (слева, сверху, ширина, высота), что и у ячейки.
Вы должны получить свой собственный тип из DataGridViewColumn (например, DataGridViewCalendarColumn) и вернуть DataGridViewCalendarCell (который вы тоже должны создать самостоятельно) в качестве CellTemplate.
Подробное описание можно найти в статье MSDN Создание настраиваемой ячейки и столбца RadioButton для элемента управления DataGridView.
Большое спасибо за этот ответ. Это не совсем то, что я искал (он по-прежнему полагается на переопределение метода Paint, а не на фактическое встраивание виджета), но он настолько близок, насколько мне удалось найти.
Спасибо за предложение, но мне не удалось заставить его работать. Для примера я создал кнопку. Я устанавливаю родительский элемент для представления сетки, я устанавливаю границы для ContentBounds ячейки, я даже вызываю BringToFont на кнопке. Даже если установить верхний / левый угол на 0,0, он все равно не отображается в сетке.