Infragistics的的UltraGrid:如何删除第一行的默认选择
-
11-07-2019 - |
题
我已经把一个的UltraGrid上一个WinForms用户控制。我已经调整了一些设置,这样我就可以使用网格为只读的多行选择表。但是有一个问题:由默认的第一行出现要被选择
但Selected.Rows
属性是空的,并且还ActiveRow
属性是null
因此,出现一行将被选择,但它实际上是不,使得不可能以除去该选择。
我敢肯定,一定有什么地方隐藏在的UltraGrid控制此行为的设置。 如果不是这种情况,那么也许有一个变通方法?
感谢。
解决方案
在一些更多的研究,我发现了一个解决方案,我将与大家分享:
myUltraGrid.DisplayLayout.Override.ActiveCellAppearance.Reset();
myUltraGrid.DisplayLayout.Override.ActiveRowAppearance.Reset();
其他提示
我exactely你有同样的问题,但Gerrie申克的解决方案没有为我工作。 我用这一招: MyUltraGrid.ActiveRow = MyUltraGrid.Rows [0]; MyUltraGrid.ActiveRow = NULL;
尝试这样:
this.ultraGrid1.SyncWithCurrencyManager = false;
this.ultraGrid1.DisplayLayout.Override.RowSelectors=DefaultableBoolean.False;
这使我在抑制网格的“主动外观”:
grid.DisplayLayout.Override.ActiveAppearancesEnabled = Infragistics.Win.DefaultableBoolean.False;
如果你也不想被标记行作为选择,你要为“选定的外观”做同样的:
grid.DisplayLayout.Override.SelectedAppearancesEnabled = Infragistics.Win.DefaultableBoolean.False;
选择主动区分是很重要的。网格不会自动选择任何行你所看到的是ActiveRow,与一大亮点,就像选择的行显示。
在网格的ActiveRow被同步的向上与所述的CurrencyManager,所以默认网格的第一行高亮显示。重置ActiveRowAppearance和ActiveCellAppearance将会移除ActiveRow默认的亮点。
this.ultraGrid1.DisplayLayout.Override.ActiveCellAppearance.Reset();
this.ultraGrid1.DisplayLayout.Override.ActiveRowAppearance.Reset();
但要注意,这并不妨碍该行成为活动行是很重要的,它只是电网不再突出活动行。由于该行仍处于活动状态(有没有办法避免这种情况),其他任何突出活动行仍然会突出显示该行。例如,如果您加载一个样式库(* .isl)文件到您的应用程序,应用样式到ActiveRow,它仍然会显示。
如果您想在一个更彻底的方法来禁用活动行的外观,完全无视所有属性设置和样式库设置,你可以这样做:
this.ultraGrid1.DisplayLayout.Override.ActiveAppearancesEnabled = Infragistics.Win.DefaultableBoolean.False;
请注意,在V9.2中加入此属性,并在旧版本中不存在。
不知何故没有上市以上为我工作的解决方案。在我来说,我只是想激活/选择完全不发生。所以我做了以下。它可能不是最好的解决方案,但它工作。
private void LayoutVisulizerUltraGrid_AfterRowActivate(object sender, EventArgs e)
{
LayoutVisulizerUltraGrid.ActiveRow = null;
}
完全禁用选择的行,则设置ActiveRow
为null应该清除选择。
grid.DisplayLayout.Override.SelectTypeRow = Infragistics.Win.UltraWinGrid.SelectType.None;