Checkbox 在DevExpress网格中,如何通过单击一次来更改复选框值?

Checkbox 在DevExpress网格中,如何通过单击一次来更改复选框值?,checkbox,gridview,devexpress,devexpress-windows-ui,devexpress-gridcontrol,Checkbox,Gridview,Devexpress,Devexpress Windows Ui,Devexpress Gridcontrol,我有一个C#,.net 4.6.1,Windows窗体项目,带有DevExpress 19.1 GridControl。其中一列中有一个未绑定复选框。要选中该复选框,我必须单击它三次。从我在线阅读的内容来看,第一次单击是在单元格上设置焦点,第二次单击打开编辑器,第三次单击将值更改为选中(第四次单击取消选中)。用户坚持不想在复选框上单击3次。我发现了一些关于类似问题的建议(详见下文),但对我来说没有任何效果。如何通过单击来更改选中状态 以下是它目前的工作: 以下是我想要它做的: 我在这里发现了

我有一个C#,.net 4.6.1,Windows窗体项目,带有DevExpress 19.1 GridControl。其中一列中有一个未绑定复选框。要选中该复选框,我必须单击它三次。从我在线阅读的内容来看,第一次单击是在单元格上设置焦点,第二次单击打开编辑器,第三次单击将值更改为选中(第四次单击取消选中)。用户坚持不想在复选框上单击3次。我发现了一些关于类似问题的建议(详见下文),但对我来说没有任何效果。如何通过单击来更改选中状态

以下是它目前的工作:

以下是我想要它做的:

我在这里发现了一个类似的问题:,但这对我不起作用

第一个建议是调用此页面上列出的PostEditor函数:。我使用以下代码进行了尝试:

    private void repositoryItemCheckEdit1_EditValueChanged(object sender, System.EventArgs e)
    {
        gvPoCost.PostEditor();
    }
        private void gvPoCost_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
    {
        gvPoCost.SetFocusedRowCellValue(gvPoCost.FocusedColumn, e.Value);
    }
它所做的只是做了一个复选框,这样它就不会改变。点击它什么也没做;它保持默认的“灰盒”格式,就像单击之前一样

第二个建议是将焦点放在选定的行上。我使用以下代码进行了尝试:

    private void repositoryItemCheckEdit1_EditValueChanged(object sender, System.EventArgs e)
    {
        gvPoCost.PostEditor();
    }
        private void gvPoCost_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
    {
        gvPoCost.SetFocusedRowCellValue(gvPoCost.FocusedColumn, e.Value);
    }
但同样,它不起作用,并使复选框,所以点击它并没有改变值

以下是如何设置我的复选框的其余相关代码:

this.colSelected = new DevExpress.XtraGrid.Columns.GridColumn();
this.repositoryItemCheckEdit1 = new DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit();

this.gvPoCost.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] {
        this.colSelected,...}

        this.gcPoCost.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] 
{
        this.repositoryItemCheckEdit1,
        this.repositoryItemCheckEdit2});

        // 
        // colSelected
        // 
        this.colSelected.Caption = "Select";
        this.colSelected.ColumnEdit = this.repositoryItemCheckEdit1;
        this.colSelected.Name = "colSelected";
        this.colSelected.Visible = true;
        this.colSelected.VisibleIndex = 0;

        // 
        // repositoryItemCheckEdit1
        // 
        this.repositoryItemCheckEdit1.AutoHeight = false;
        this.repositoryItemCheckEdit1.Name = "repositoryItemCheckEdit1";
        this.repositoryItemCheckEdit1.EditValueChanged += new System.EventHandler(this.repositoryItemCheckEdit1_EditValueChanged);

((System.ComponentModel.ISupportInitialize)(this.repositoryItemCheckEdit1)).EndInit();

    private DevExpress.XtraGrid.Columns.GridColumn colSelected;
    private DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit repositoryItemCheckEdit1;

您是否已将GridView的EditorShowMode设置为非默认值?