Ich frage mich, ob es möglich ist, eine datgridview-Spalte zu haben, um ihre Breite automatisch an den Inhalt anzupassen und gleichzeitig vom Benutzer in der Größe veränderbar zu sein?
Hier, was ich bisher versucht habe:
%Vor%Aber ich kann die Spaltengröße immer noch nicht manuell ändern.
Wenn jemand bereits auf dieses Problem gestoßen ist oder eine Idee hat, lassen Sie es mich wissen.
Danke.
Ich finde endlich einen Weg zu tun, was ich wollte.
Die Idee ist
dataGridView
die Spalten selbst so skalieren, dass sie auf den Inhalt passen und dann AutoSizeColumnMode
und setze die Breite mit dem Wert, den du gerade gespeichert hast. Hier ist der Code:
%Vor%Hoffe, das wird helfen.
Die Sache, die nicht offensichtlich ist (es war nicht für mich), ist, dass die Verwendung von AutoSizeMode bedeutet, dass die Größe verwaltet werden soll, was impliziert, dass der Benutzer keine Größenänderung durchführen würde (kann). Also, was ich versucht habe und es scheint zu arbeiten, ist DataGridView.AutoResizeColumn (beachten Sie, dass es eine einmalige Größenänderung) für jede Spalte oder die meisten Spalten setzt dann DataGridView.AllowUserToResizeColumns auf True. Es gibt wahrscheinlich andere Variationen, aber die wichtige Sache ist, dass die Verwendung von AutoSizeMode sich gegenseitig ausschließt und es dem Benutzer erlaubt, eine Größenänderung vorzunehmen.
DataGridView.Columns
zu durchlaufen, ändern Sie AutoSizeMode
in ein gültiges, sammeln Sie den Wert für die Breite und setzen Sie ihn zurück nach Änderung AutoSizeMode
auf DataGridViewAutoSizeColumnMode.None
). Form.Show()
oder Form.ShowDialog()
aufgerufen wird. Also habe ich dieses Code-Snippet in das Form.Shown
Event eingefügt und das funktioniert für mich. Mein transformierter Code, egal was DataGridView.AutoSizeColumnsMode
zuvor gesetzt hat, ich benutze DataGridViewColumn.GetPreferredWidth()
anstelle von DataGridViewColumn.AutoSizeMode
und setze den width Wert sofort, dann ändere DataGridView.AutoSizeColumnsMode
einmal:
Achten Sie darauf,
einzustellen %Vor%Ich weiß nicht, wie das funktioniert, nachdem das Formular angezeigt wird.
Tags und Links .net c# datagridview