Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Infragistics UltraGrid:如何删除第一行的默认选择_.net_Winforms_Infragistics_Ultrawingrid - Fatal编程技术网

.net Infragistics UltraGrid:如何删除第一行的默认选择

.net Infragistics UltraGrid:如何删除第一行的默认选择,.net,winforms,infragistics,ultrawingrid,.net,Winforms,Infragistics,Ultrawingrid,我在WinForms用户控件上放置了一个超级网格。我调整了一些设置,以便可以将网格用作只读多行选择表。但有一个问题:默认情况下,第一行显示为选中 但是Selected.Rows属性为空,并且ActiveRow属性为null 因此,该行看起来是选中的,但实际上不是,因此无法删除该选择 grid.DisplayLayout.Override.SelectTypeRow = Infragistics.Win.UltraWinGrid.SelectType.None; 我确信超级网格上一定有一个隐藏的

我在WinForms用户控件上放置了一个超级网格。我调整了一些设置,以便可以将网格用作只读多行选择表。但有一个问题:默认情况下,第一行显示为选中

但是
Selected.Rows
属性为空,并且
ActiveRow
属性为
null

因此,该行看起来是选中的,但实际上不是,因此无法删除该选择

grid.DisplayLayout.Override.SelectTypeRow = Infragistics.Win.UltraWinGrid.SelectType.None;
我确信超级网格上一定有一个隐藏的设置来控制这种行为。 如果不是这样的话,也许有解决办法


谢谢。

经过进一步研究,我找到了一个解决方案,我将与大家分享:

myUltraGrid.DisplayLayout.Override.ActiveCellAppearance.Reset();
myUltraGrid.DisplayLayout.Override.ActiveRowAppearance.Reset();

我和你的问题完全一样,但是Gerrie Schenck的解决方案对我不起作用。 我使用了这个技巧: MyUltraGrid.ActiveRow=MyUltraGrid.Rows[0];
MyUltraGrid.ActiveRow=null

不知何故,上面列出的解决方案都不适合我。就我而言,我只是希望激活/选择根本不发生。所以我做了下面的事情。这可能不是最好的解决方案,但它确实有效

    private void LayoutVisulizerUltraGrid_AfterRowActivate(object sender, EventArgs e)
    {
        LayoutVisulizerUltraGrid.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
设置为null将清除所选行

grid.DisplayLayout.Override.SelectTypeRow = Infragistics.Win.UltraWinGrid.SelectType.None;

区分选定和活动是很重要的。网格从不自动选择任何行。您看到的是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中添加的,在旧版本中不存在。

这会清除第0行的ListObject数据。对我或Gianni不起作用。Gianni的方法消除了ListObject数据。你能帮我解释一下为什么它不起作用吗?我使用一个带有默认属性的简单网格并将其绑定,然后执行了推荐的2行。没有变化,这对我很有效。对于有类似问题的人,请记住一行可以有两个属性:“Selected”和“Active”。可以选择零行或多行,但只有一行处于活动状态。不幸的是,选定行和活动行(默认情况下)都以相同的方式高亮显示。活动行也由行标题中的三角形表示(如果启用了行标题)。ActiveRowAppearance.Reset()调用告诉UltraGrid不要高亮显示活动行。希望这有帮助。谢谢。这让我发疯。