5

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

DataGridViewColumn 列 = new DataGridViewColumn(new DataGridViewCheckBoxCell());

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

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

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

更新:对于 Windows 窗体,请。

谢谢。

4

3 回答 3

6

Well, after more than 4 hours of debugging, I have found that the DataGridView row height was too small for the checkbox to be painted, so it was not displayed at all. I have found this after an accidental row height resizing.

As a solution, you can set the AutoSizeRowsMode to AllCells.

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

于 2008-09-17T08:53:50.510 回答
1

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

于 2008-09-16T16:36:01.030 回答
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>
于 2008-09-16T11:06:37.313 回答