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
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
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".
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.
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.
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;
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.
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.
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!
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.
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.
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=false
für eine bearbeitbare Spalte entferne, wird der horizontale Balken angezeigt.
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.
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.
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
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.