这似乎是一个非常容易的问题,但我陷入了困境,无法找到解决方法。我在我的表单中使用ultragrid有几个列。我的问题是当我试图点击列标题时,我希望我的整个列都被选中,但事实并非如此。我假设SelectTypeCol是我的列选择的属性,但它也不起作用。我还尝试将每列添加到Selected.Columns集合中,如此UltraGrid1.DisplayLayout.Bands(0).Columns(i).Header.Selected = True但它也不适用于我。我相信Selected只能在运行时使用,但不能在设计模式下使用。
因此,如果有更简单的方法来完成这项工作,请告诉我。
谢谢
答案 0 :(得分:2)
您正在寻找属性HeaderClickAction
grid.DisplayLayout.Override.HeaderClickAction = HeaderClickAction.Select
当您单击标题时,这将自动将整个列的选择状态翻转为Selected(或Delected)。当然,这也意味着您无法自动对所有列进行排序
您可以使用此类代码(C#)
以编程方式设置列的选择状态 grid.DisplayLayout.Bands[0].Columns["youColumnKey"].Header.Selected = true;
这样可以将HeaderClickAction
属性保留为SortSingle
或SortMulti
,但您必须使用代码和相应的事件来处理这种情况
答案 1 :(得分:0)
您需要在网格上安装InitializeLayout事件。在这种情况下,您需要将chekboxsynchronization设置为默认值,它应该在这里工作是示例代码
private void ultraGrid1_InitializeLayout(object sender,
Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e)
{
e.Layout.Bands[0].Columns.Add("CheckBox");
e.Layout.Bands[0].Columns["CheckBox"].Style = ColumnStyle.CheckBox;
e.Layout.Bands[0].Columns["CheckBox"].Header.CheckBoxVisibility = HeaderCheckBoxVisibility.WhenUsingCheckEditor;
e.Layout.Bands[0].Columns["CheckBox"].Header.CheckBoxSynchronization = HeaderCheckBoxSynchronization.Default; <-- make sure it is set to default here
}