Вам не нужна строка «fig.show ()». Просто удалите его. Тогда это не будет предупреждением.
Вместо того, чтобы пытаться создать столбец в коде, нажмите на крошечную стрелку в поле при верхнем правом из управления DataGridView и избранные "Столбцы Редактирования..." из меню, которое появляется. В диалоговом окне нажмите кнопку Add, затем выберите опцию "Databound column" и выберите булев столбец, с которым Вы связываете.
Ну, больше чем после 4 часов отладки я нашел, что высота строки DataGridView была слишком мала, чтобы флажок был нарисован, таким образом, это не было отображено вообще. Я нашел это после случайного изменения размеров высоты строки.
Как решение, можно установить AutoSizeRowsMode на AllCells.
richDataGrid.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
Создайте TemplateField, и связал идентификатор с ним, что-то вроде этого:
<asp:TemplateField HeaderText="Whatever" SortExpression="fieldname" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox runat="server" ID="rowCheck" key='<%# Eval("id") %>' />
</ItemTemplate>
</asp:TemplateField>