Größe von DataGridView-Breite Passform-Spalten
Ich habe eine DataGridView
gefüllt ist programmgesteuert. Die Spalten sind auf auto eingestellt-ändern Sie die Größe je nach Inhalt einer Zelle.
Den DataGridView
wird aufgefüllt werden, mit teilen von Informationen in Bezug auf hydraulische und pneumatische Schaltpläne. Meine form hat nur eine SplitContainer
eine PictureBox
und die DataGridView
. Die SplitterDistance
verbunden ist, um die Breite der DataGridView
.
Den DataGridView
wird nur ein maximum von 6 Spalten ("Index", "Artikelnummer", "Seriennummer", "Zeichnungsnummer", "Seitenzahl", "Revision Number") und ein minimum von 2 Spalten abhängig von der Schaltpläne Anforderungen. So möchte ich die Größe des Steuerelements entsprechend.
Wie bekomme ich die DataGridView
Kontrolle, um die Größe der gesamten Breite der Spalten so, dass die scrollbar nicht angezeigt?
DataGridView
? Oder Sie wirklich wollen, um die Größe des DataGridView
Kontrolle an sich passen alle Spalten? Das ist ungewöhnlich. Was ist, wenn die Gesamtbreite der Spalten ist 3000px? Sie wollen ein Netz, das blättert, viiiiel aus der rechten Seite des Bildschirms irgendwo?das DataGridView wird aufgefüllt werden, mit teilen von Informationen in Bezug auf hydraulische und pneumatische Schaltpläne, meine form hat nur einen SplitContainer, einem PictureBox-Steuerelement und die DataGridView, die SplitterDistance verbunden ist, um die Breite des DataGridView, das DataGridView wird nur ein maximum von 6 Spalten: "Index", "Artikelnummer", "Seriennummer" , "Zeichnungsnummer", "Seitenzahl", "Revision Number" und ein minimum von 2 Spalten abhängig von der Schaltpläne Anforderungen. so möchte ich die Größe des Steuerelements entsprechend
DV es ist völlig irrelevant, über Hydraulik
InformationsquelleAutor Jared6243 | 2014-05-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Führen Sie den folgenden code nach dem raster mit Daten geladen und die Spalten wurden Größe entsprechend (vorausgesetzt, Sie sind die Einstellung der Spalten' AutoSize-Eigenschaft zur Laufzeit).
Was es tut:
3
mehr, denn ohne, dass die horizontale Bildlaufleiste gehalten, zeigt sich - möglicherweise, weil margin/padding rund um das Netz, ich bin mir nicht sicher.Froh, es zu hören. 🙂
Man könnte ersetzen die
+3
mitdataGridView1.Margin.Horizontal
wenn gewünscht, und können(new int[] {...).Min();
cap die Breite auf Dinge wie dieParent.Width
oderdataGridView1.Maximum.Width
um Bedenken von @GrantWinney obenDanke @woodvi. Ich mag die Idee der Verwendung der entsprechenden Eigenschaft anstelle eines fest codierten Wert.
Zu nehmen, versteckte Spalten in account verwenden:
Columns.Cast<DataGridViewColumn>().Where(x => x.Visible).Sum(x => x.Width)
- dies ist nicht in der original-Fragen, aber andere (wie mich) die versuchen könnten, um diesen code zu verwenden in einem solchen Fall.InformationsquelleAutor Grant
ok, um zu klären, was Sie wollen (Und beantworten)
Ich nehme an, Sie wollen DataGridView-Breite erweitern Sie in der Größe, so dass keine horizontale Bildlaufleiste immer angezeigt wird? (btw, während Sie dabei sind, erhöhen Sie die form, die es auch)
Zum Beispiel, jetzt habe ich
Gibt es eine Spalte 1, 2 und 3 gibt es.
möchte ich das datagridview zu erweitern, um eine Größe passt alle Spalten
Und sagen wir mal weitere Daten Hinzugefügt
Kann ich tun, diese zwei Zeilen zu erweitern, die Zellen,
aber ich bekomme immer noch eine horizontale scroll-Leiste, weil die Größe des datagridview hat sich nicht geändert. obwohl die Größe der einzelnen Spalten hat.
Kann ich sehen, dass es eine datagridview1.Size-Eigenschaft, und eine dataGridView1.Width-Eigenschaft. Entweder verwendet werden kann.
Beachten Sie auch, dass es eine komische Art von Spalte vor der ersten Spalte.
Also, wenn du hast, machen die dataGridView1.Breite gleich der Größe der Spalten 1,2,3 Sie würden noch eine scroll-Leiste, weil der so lustig Spalte wie die Sache auf der linken Seite der Spalte mit der Bezeichnung "Spalte 1". Ich sehe es hat eine Breite von 50 Einheiten. Also, wenn Sie die dataGridView1.Breite = 50 plus die Breite der einzelnen Spalten, dann Grau dataGridView-Bereich, wird immer groß genug sein, um alle Spalten.
Ziehe ich ein datagridview, und ein Textfeld, das Textfeld zeigt die Größe des datagridview.Die Breite und die Gesamtbreite aller Spalten, und die Breite jeder einzelnen Spalte.
dies funktioniert für mich.
Also die Spalten festgelegt sind, erweitern Sie in der Größe oder verringern in der Größe entsprechend der Menge des Inhalts in Ihnen, aber nicht nur das.. DataGridView.Breite erhöhen, von 50(die lustige Spalte ganz Links), plus der Größe aller regelmäßigen/rest der Spalten.
Also ich habe z.B.
tw ist die Gesamtbreite aller Spalten (ALLE Spalten darunter also die seltsame Spalte Links von Spalte 1, die habe ich als als 50 in der Breite, vielleicht ist es ja)
dgvw ist dataGridView.Breite
Und Dank dem code von oben, dgvw erweitert mit tw.
Und den code von oben erweitert auch die form durch die Menge, die die dataGridView-Eigenschaft erweitert.
diese kann man dynamisch sein stackoverflow.com/questions/1025670/... und dieser ist hat aber Probleme stackoverflow.com/questions/686309/...
InformationsquelleAutor barlop
Hier ist ein Beispiel für eine Möglichkeit, um die Größe des datagridview-Breite
die erwähnte Technik in dieser Frage die Größe ein datagridview stackoverflow.com/questions/37635932/...
InformationsquelleAutor barlop