在Infragistics Ultra Grid中我必须根据Initialize Row事件中的条件禁用布尔(复选框)单元格
PS:我不希望禁用整个列。只应禁用单元格(也应禁用包含复选框的单元格)。
我保留了下面的代码
e.Row.Activation = Activation.NoEdit
此代码禁用超网格行中的所有单元格。但是,单元格中存在的布尔复选框不会被禁用。
答案 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并创建复选框,选中和取消选中。 然后创建/修改已禁用的图像。
在单元格单击事件中,根据需要更改单元格图像。如果需要,创建一个额外的隐藏列来存储单元格的状态/值。这是我在创建/翻译我的c#应用程序的Java版本以在其他平台上运行时所做的事情,并且效果很好。 (如果有帮助,请随意使用这些图片)
答案 2 :(得分:0)
找到根本原因。在基类中,有一个鼠标按下事件,因为正在启用ultragrid中的复选框。即使我保持这样的逻辑e.Row.Activation = Activation.NoEdit。
谢谢大家的帮助。