我已经把一个的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;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top