2010-06-15 37 views
11

'u otomatik olarak kısıtlar ancak kısıtlar, bazı verileri görüntülemek için DataGridView'ım var. Sütunların içeriğine uygun şekilde boyutunu istiyorum, bu yüzden AutoSizeColumnsMode'u AllCellsExceptHeader olarak ayarlıyorum. Ama sütunları belirli bir değerin ötesine geçecek şekilde kısıtlamak istiyorum. MinimumWidth Property ... var ama maalesef MaximumWidth Property yok.DataGridView C# 4.0 Uygulamamda maksimum sütun boyutu

Bunu nasıl çözeceğiniz konusunda herhangi bir fikrin var mı? peşin

sayesinde Frank

cevap

11

i genişliğini kontrol kendisine satırları ekledikten sonra sütunları genişliği kontrol etmektir, bunu başardı ve bu boyut benim max üzerindeyse eğer, ben set tek yolu el değiştirdikten sonra sütunlar sen/güncelleme/satırları silmek ve yeniden operasyon yapacak eklerken yeniden AllCellsExceptHeader için AutoSizeColumnsMode ayarlamak gerekirdi

 foreach(DataGridViewColumn c in myView.Columns) 
      if (c.Width > myMax) 
      { 
       c.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; 
       c.Width = myMax; 
      } 

Doğal DataGridViewAutoSizeColumnMode.None

için AutoSizeMode.

3

Bunun daha eski bir problem olduğunu biliyorum, ama kendimle karşılaştım ve iyi bir çözüm (sanırım) çözüm buldum;

' Eventhandler 
Private Sub DataGridView1_ColumnWidthChanged(sender As Object, e As DataGridViewColumnEventArgs) 

// If my Grid refreshes this event doesnt work properly so I stop it from firing 
    If isRefreshing Then Exit Sub 

    Dim col As DataGridViewColumn = e.Column 
    If col.AutoSizeMode = DataGridViewAutoSizeColumnMode.None Then //optional 
     Dim isWidth As Integer = col.Width 
     Dim prefWidth As Integer = col.GetPreferredWidth(DataGridViewAutoSizeColumnMode.AllCellsExceptHeader, True) 
     If isWidth > prefWidth Then col.Width = prefWidth 
    End If 
End Sub 

Bu durumda benim MaxWidth Tercih Edilen Genişliktir. PrefWidth'ı istediğiniz maksimum süreye değiştirebilirsiniz.

+1

Sadece bunun bir “etc.net” cevabını içeren bir soru olduğunu farkettim, bunun için üzgünüm. Ama bunu tercüme edebilmeliydin. :-) – Luke