2017-04-05 2 views
0

Ich habe ein Formular mit DataGridView, das Daten anzeigt. Alles sieht gut aus, außer wenn einer der Spalteninhalte breiter ist als die Spaltenbreite. Also suchte ich und eine Codezeile gefunden, die ich hinzugefügt, um meine Adjust_the DGV_width Methode, so dass Spalten Breite eingestelltPassen Sie die Spaltenbreite nur dann an, wenn der Inhalt nicht passt.

foreach (DataGridViewColumn col in zGrid1.Columns) 
{ 
    col.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; 
} 

Es funktioniert gut, aber es ist hässlich, und ich würde es vorziehen, um die Spalten zu halten Breite wie es sei denn, Es gibt Inhalt, der nicht passt. Wie kann ich programmatisch herausfinden, welche Breite der Inhalt die Spaltenbreite nicht anpassen kann? So sieht es jetzt aus, aber ich bevorzuge es, wenn in Spalten mehr Platz ist.

The form

+0

Was möchten Sie tun? Die angegebene Methode skaliert die Spalten bereits nach Zellengröße. Was ist hässlich daran denken Sie ein wenig Code kann besser tun – EpicKip

+0

Ich sagte bereits, was ich will, ich möchte die Spaltenbreite auf 100 (Standard) zu halten, außer wenn Inhalt kann nicht passen. –

+0

Sie müssen nicht für die Größe anpassen jede Spalte, Sie können es für die gesamte Tabelle tun, wie in meiner Antwort – EpicKip

Antwort

1

Diese leicht durch Überprüfen der Spaltenbreite nach dem autosize auf Einstellung erreicht werden kann.

Beispiel:

int myDefaultWidth = 100; 
myDataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; 
foreach (DataGridViewColumn column in myDataGridView.Columns) 
{ 
    if (column.Width < myDefaultWidth) 
    { 
     column.Width = myDefaultWidth; 
    } 
} 
+0

Ich habe Ihren Code angepasst, um mit mir zu arbeiten, aber ich musste den AutoSizeColumnsMode auf None um es funktionieren zu lassen, aber wie auch immer es funktioniert. Vielen Dank! –

+0

Froh, es hat funktioniert! – EpicKip

Verwandte Themen