DataGridViewCheckBoxCell类型的DataGridView列始终是只读/禁用的

时间:2008-09-16 11:01:23

标签: winforms datagridview datagridviewcheckboxcell

我使用的是.NET Windows Forms DataGridView,我需要编辑一个DataBound列(它绑定在一个布尔DataTable列上)。为此我指定了这样的单元格模板:

DataGridViewColumn column = new DataGridViewColumn(new DataGridViewCheckBoxCell());

你看我需要一个CheckBox单元格模板。

我面临的问题是此列始终是只读/禁用的,就好像它是TextBox类型一样。它根本不显示复选框。

有关如何使用DataGridView的可编辑复选框列的任何想法吗?

更新:对于Windows表单,请。

感谢。

3 个答案:

答案 0 :(得分:6)

好了,经过4个多小时的调试,我发现DataGridView行的高度太小,无法绘制复选框,因此根本没有显示。我在意外行高调大后发现了这一点。

作为解决方案,您可以将AutoSizeRowsMo​​de设置为AllCells。

richDataGrid.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;

答案 1 :(得分:1)

不要尝试在代码中创建列,而是单击DataGridView控件右上角框中的小箭头,然后从出现的菜单中选择“编辑列...”。在对话框中,单击“添加”按钮,然后选择“数据绑定列”选项并选择要绑定的布尔列。

答案 2 :(得分:0)

创建一个TemplateField并将id绑定到它,如下所示:

<asp:TemplateField HeaderText="Whatever" SortExpression="fieldname" ItemStyle-HorizontalAlign="Center">
    <ItemTemplate>
        <asp:CheckBox runat="server" ID="rowCheck" key='<%# Eval("id") %>' />
    </ItemTemplate>
</asp:TemplateField>