Frage

Ich habe eine Ultragrid auf einer WinForms Benutzer Kontrolle. Ich habe einige Einstellungen gezwickt, so kann ich das Gitter als Nur-Lese-Mehrzeilenauswahltabelle verwenden. Aber es gibt ein Problem:. Standardmäßig die erste Zeile ausgewählt wird, erscheint

Aber die Selected.Rows Eigenschaft leer ist, und auch die ActiveRow Eigenschaft ist null.

So ist die Zeile erscheint ausgewählt werden, aber es ist eigentlich nicht, was es unmöglich macht, die Auswahl zu entfernen.

Ich bin sicher, es muss irgendwo eine Einstellung auf dem Ultragrid versteckt sein, um dieses Verhalten zu steuern. Und wenn dies nicht der Fall ist, dann vielleicht gibt es eine Abhilfe?

Danke.

War es hilfreich?

Lösung

Nach einigen mehr Forschung Ich habe eine Lösung gefunden, die ich mit euch allen teilen werden:

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

Andere Tipps

Ich habe exactely das gleiche Problem, das Sie hatten, aber Gerrie Schenck-Lösung kann für mich nicht. Ich habe diesen Trick:     MyUltraGrid.ActiveRow = MyUltraGrid.Rows [0];     MyUltraGrid.ActiveRow = null;

versuchen Sie dies:

this.ultraGrid1.SyncWithCurrencyManager = false;
this.ultraGrid1.DisplayLayout.Override.RowSelectors=DefaultableBoolean.False;

Das hat mir geholfen, das "Active Appearance" ein Gitter bei der Unterdrückung:

grid.DisplayLayout.Override.ActiveAppearancesEnabled = Infragistics.Win.DefaultableBoolean.False;

Wenn Sie auch so gewählt werden, nicht eine Zeile wollen markiert, Sie haben für „Selected Appearance“ das Gleiche zu tun:

grid.DisplayLayout.Override.SelectedAppearancesEnabled = Infragistics.Win.DefaultableBoolean.False;

Es ist wichtig, zwischen wählt und aktiv zu unterscheiden. Das Raster wählt nie alle Zeilen automatisch Was Sie sehen die ActiveRow ist, die mit einem Highlight zeigt ebenso wie die ausgewählten Zeilen.

Die ActiveRow des Gitters mit dem Currency synchronisiert, also standardmäßig die erste Zeile des Rasters hervorgehoben erscheint. Zurücksetzen des ActiveRowAppearance und ActiveCellAppearance wird das Standard-Highlights aus dem ActiveRow entfernen.

        this.ultraGrid1.DisplayLayout.Override.ActiveCellAppearance.Reset();
        this.ultraGrid1.DisplayLayout.Override.ActiveRowAppearance.Reset();

Aber es ist wichtig zu beachten, dass dies nicht die Zeile nicht daran hindert, die aktive Zeile immer, es ist nur, dass das Gitter nicht mehr unterstreicht die aktive Zeile. Da die Reihe noch aktiv ist (und es gibt keine Möglichkeit, dies zu verhindern) irgendetwas anderes, das die aktive Zeile hebt noch die Zeile markiert. Zum Beispiel, wenn Sie eine Stilbibliothek laden (* .isl) in Ihre Anwendung Datei, die einen Stil auf die ActiveRow gilt, wird es noch angezeigt werden soll.

Wenn Sie die aktive Zeile Auftritt in einer gründlicheren Weise deaktivieren möchten, völlig ignoriert alle Einstellungen der Eigenschaften und Stilbibliothek Einstellungen, Sie können dies tun:

this.ultraGrid1.DisplayLayout.Override.ActiveAppearancesEnabled = Infragistics.Win.DefaultableBoolean.False;

Beachten Sie, dass diese Eigenschaft wurde in v9.2 hinzugefügt und existiert nicht in älteren Versionen.

Irgendwie keine der genannten Lösungen, die oben für mich gearbeitet. In meinem Fall wollte ich einfach Aktivierung / Auswahl überhaupt nicht passieren. Also habe ich die folgenden. Es ist vielleicht nicht die beste Lösung sein, aber es funktioniert.

    private void LayoutVisulizerUltraGrid_AfterRowActivate(object sender, EventArgs e)
    {
        LayoutVisulizerUltraGrid.ActiveRow = null;
    }

vollständig deaktivieren ausgewählte Zeile, dann ActiveRow Einstellung die Auswahl auf Null sollte löschen.

grid.DisplayLayout.Override.SelectTypeRow = Infragistics.Win.UltraWinGrid.SelectType.None;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top