wake-up-neo.net

Horizontale Bildlaufleiste ist in DataGridView nicht sichtbar

Ich habe ein DataGridView-on-Window-Formular, das mit 30 Spalten und Tausenden von Zeilen gefüllt ist. ScrollBars-Eigenschaft ist auf Both gesetzt, aber die horizontale Bildlaufleiste ist nicht sichtbar. selbst ich kann nicht mit der Pfeiltaste von der Tastatur aus scrollen.

Ich habe es ausprobiert, indem ich die ScrollBars-Eigenschaft ebenfalls auf Horizontal gesetzt habe, aber das macht keinen Unterschied.

Anregungen bitte?

Vielen Dank

11
Scorpion

Nun Jungs, es ist aussortiert.

Ich beantworte meine eigene Frage. es kann in Zukunft jemandem helfen.

für eine der Spalten ist die Frozen-Eigenschaft als True festgelegt. was false für alle Spalten sein sollte. Nun funktioniert ScrollBar absolut einwandfrei für mich.

Prost

enter image description here

36
Scorpion

Ich weiß, dass dies bereits behoben wurde, aber ich bin auf einen anderen Grund gestoßen, warum dies passieren könnte. Ich dachte, ich würde es als Antwort hinzufügen, falls jemand anderes das gleiche Problem hat.

Wenn Ihr Formular über eine DataGridView verfügt, die zum Ausfüllen des Formulars angedockt ist, und das Formular auch über eine Statusleiste verfügt, kann die Bildlaufleiste der DataGridView, abhängig von der Reihenfolge, in der sie erstellt wurden, ausgeblendet werden. Um dies zu beheben, klicken Sie mit der rechten Maustaste auf das DataGridView und wählen Sie "Nach vorne bringen".

16
Dan

ich hatte das ähnliche Problem. Was ich tat, war, überprüfen Sie jede Ihrer Datagrid-Spalten und setzen Sie Frozen auf " false ". Hoffentlich hilft das. 

3

Als ich auf dieses ärgerliche Problem gestoßen bin, lag es an der AutoSizeColumnsMode-Eigenschaft der DGV, die auf Fill gesetzt war.

Ich habe es behoben, indem ich diese Eigenschaft in AllCells änderte, aber jeder andere Wert wird funktionieren. Es funktioniert auch, wenn der DGV angedockt ist und ich mehrere angedockte Panels habe und die erste Spalte Gefroren ist. 

3
Fabio Michelini

Ich hatte dieses irritierende Problem. Ich hatte bereits das DataGridView in meinem Formular erstellt und setze alle Datenbindungs- und Eigenschafteneinstellungen in der CS-Datei.

Ich habe gerade die Zeile in meinem Code hinter der Datei (.cs) kommentiert, d. H. 

gvTblContent.AutoSize = true;

Sie müssen die Eigenschaft AutoSize nicht festlegen. Horizontale und vertikale Bildlaufleisten werden standardmäßig bereitgestellt. Andernfalls können Sie Folgendes verwenden:

gvTblContent.ScrollBars = ScrollBars.Both;
2
iltaf

Der Docking.Fill des DGV ist ein bisschen fehlerhaft.
Dies tritt auf, wenn Sie mehrere angedockte Bereiche, Symbolleisten usw. Haben. Häufiger, wenn Sie zur Laufzeit Ihre Spalten erstellen.

Das Steuerelement denkt, dass es breiter als der Container ist und die horizontale Bildlaufleiste nicht erscheint. 

Gefroren, autosize, brint nach vorne und die anderen genannten Mittel funktionieren nicht immer. Die zuverlässigste Lösung ist das Andocken und Einstellen der Breite des DGV zur Laufzeit. Auf diese Weise erreicht der DGV wird nicht verwirrt darüber, wie breit es ist.

2
Joe

Alle eingefrorenen Spalten sollten in das Formular passen. Andernfalls wird die horizontale Bildlaufleiste nicht angezeigt. Wenn keine horizontale Bildlaufleiste vorhanden ist, erweitern Sie das Formular, bis das letzte eingefrorene Feld und dann die horizontale Bildlaufleiste angezeigt werden wird magisch erscheinen.

0
Boris Vaiser

Ich hatte das gleiche Problem und stellte fest, dass mein dataGridView etwas größer war als die Form, in der es sich befand. Ich habe die Größe angepasst, damit es in die Form passt, und es hat funktioniert! Hoffe, das hilft!

0
Robbie

Ich habe einige erste eingefrorene Spalten auf true gesetzt (H_bar) funktioniert immer noch. Aber ich habe frozen = true auf eine unsichtbare Spalte (column.visible = false) gesetzt, es ist weg.

0

Ich hatte auch dieses Problem in VS2015 auf einer Winform. 

Die Winform hat ein Tabellenlayout, das in 4 Zeilen und 1 Spalte aufgeteilt ist. In den Zeilen platziere ich Panels zum Platzieren anderer Steuerelemente mit Ausnahme der DataGrid-Zeile, die sich in der letzten Zeile befindet. Das DataGrid ist so eingestellt, dass das Dock gefüllt ist. Das Formular verfügt außerdem über eine Statusleiste für die zukünftige Verwendung. 

Was ich gefunden habe, ist, dass die Statusleiste die Bildlaufleiste wie zuvor erwähnt blockiert hat. 

Ich fügte dem Tabellenlayout eine weitere Zeile hinzu, die jedoch sowohl zur Laufzeit als auch zum Entwurf am unteren Rand des Formulars eine große Leerstelle anzeigen würde. Die Größenänderung des Formulars wurde auch nicht behoben. Ich habe versucht, die Zeilenhöhe des Tabellenlayouts einzustellen, aber es funktionierte nicht. Ich habe 1 Pixel, 5 Pixel usw. ausprobiert, keine Änderung. Am Ende habe ich aufgegeben und die Statusleiste entfernt, ich habe sie sowieso nicht benutzt.

0
Larry

In meinem Fall habe ich nur ANCHOR Oben, Unten, Links, Rechts anstelle von DOCK Fill verwendet.

Versuch es.

In meinem Fall wurde die Bildlaufleiste erst angezeigt, als ich den Status der eingefrorenen Spalte feststellte und schreibgeschützt war. Ich habe eingefrorene Spalten für schreibgeschützte Spalten sowie die einzige editierbare Spalte in meiner dataGridView erstellt. Wenn ichfrozen=falsefür eine bearbeitbare Spalte entferne, wird der horizontale Balken angezeigt.

0
Kishor Oswal

Ich begegne auch diesem Problem. Es ist eine dumme Situation in meinem Fall.

Bitte überprüfen Sie die Position/Größe von DataGridView, ob das Formular nicht vorhanden ist.

0
Mystic Lin

Ich hatte das gleiche Problem mit DataGridView in einem tableLayoutPanel.

Nichts davon hat mir geholfen.

Es stellt sich heraus, dass die Spalte im tableLayoutPanel, in der sich DataGridView befindet, auf AutoSize eingestellt ist.

Die Lösung besteht darin, die tableLayoutPanel-Spalten auf den tatsächlichen Wert oder Prozent festzulegen.

0
Emil Gospodinov

Mehrere Anzeigen/Ausblenden von Spalten auf meiner Seite verursachten dasselbe Problem. Musste hinzufügen DataGridView1.ScrollBars = ScrollBars.Both; nachdem ich alle Spalten und Zeilen im Datagridview bearbeitet habe

Nichts davon hat vorher geholfen. 1. Keine gefrorenen Säulen 2. Das Laden von Formularen hat dataGridView1.ScrollBars = ScrollBars.Both; 3. Keine Statusleiste

0
Nikolay Popov

Ich hatte ein DataGridView in einer Zelle eines TableLayoutPanel, und in der DataGridView wurde keine Bildlaufleiste angezeigt. Ich denke, die Größe des DataGridView wurde auch nicht richtig verwaltet, wenn das DataGridView angedockt wurde, um eine Zelle des TableLayoutPanels zu füllen. Ich hatte keine gefrorenen Säulen. 

Ich konnte das Problem beheben, indem ich DataGridView in einem Panel platzierte und im Panel AutoScroll = true festlegte, damit das Panel den Bildlauf verwalten konnte. Ich habe das Panel angedockt, um es in die Zelle des TableLayoutPanel zu füllen, und das DataGridView angedockt, um es in das Panel zu füllen.

0
frenchtoast