5

.NET Windows Forms DataGridView を使用しており、DataBound 列 (ブール値の DataTable 列にバインド) を編集する必要があります。このために、セル テンプレートを次のように指定します。

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

CheckBox セル テンプレートが必要であることがわかります。

私が直面している問題は、この列が TextBox タイプであるかのように、常に読み取り専用/無効になっていることです。チェックボックスがまったく表示されません。

DataGridView の編集可能なチェックボックス列を操作する方法について何か考えはありますか?

更新: Windows フォームの場合は、お願いします。

ありがとう。

4

3 に答える 3

6

4時間以上のデバッグの結果、DataGridViewの行の高さが小さすぎてチェックボックスを描画できないため、まったく表示されなかったことがわかりました。誤って行の高さを変更した後、これを見つけました。

解決策として、AutoSizeRowsMo​​deを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 に答える