应根据InitializeRow事件中的条件禁用Infragistics UltraGrid中的布尔列(复选框)单元格

时间:2015-07-02 06:30:24

标签: infragistics ultragrid

在Infragistics Ultra Grid中我必须根据Initialize Row事件中的条件禁用布尔(复选框)单元格

PS:我不希望禁用整个列。只应禁用单元格(也应禁用包含复选框的单元格)。

我保留了下面的代码

e.Row.Activation = Activation.NoEdit

此代码禁用超网格行中的所有单元格。但是,单元格中存在的布尔复选框不会被禁用。

3 个答案:

答案 0 :(得分:0)

尝试类似:

private void ultraGrid1_InitializeRow(object sender, Infragistics.Win.UltraWinGrid.InitializeRowEventArgs e)
{ // deactivate boolean in cell 0
        //ultraGrid1.DisplayLayout.Bands[0].Columns[0].CellActivation = 
        //         Infragistics.Win.UltraWinGrid.Activation.Disabled;

        e.Row.Cells[0].Activation = Infragistics.Win.UltraWinGrid.Activation.Disabled;
}

已禁用旁边的其他选项包括: ActivateOnly AllowEdit NoEdit

您可以随时返回并激活它。

答案 1 :(得分:0)

这是另一个想法。而不是布尔单元格,使其成为System.Drawing.Bitmap并创建复选框,选中和取消选中。 Checked Unchecked然后创建/修改已禁用的图像。

在单元格单击事件中,根据需要更改单元格图像。如果需要,创建一个额外的隐藏列来存储单元格的状态/值。这是我在创建/翻译我的c#应用程序的Java版本以在其他平台上运行时所做的事情,并且效果很好。 (如果有帮助,请随意使用这些图片)

答案 2 :(得分:0)

找到根本原因。在基类中,有一个鼠标按下事件,因为正在启用ultragrid中的复选框。即使我保持这样的逻辑e.Row.Activation = Activation.NoEdit。

谢谢大家的帮助。