Miten saan VB.NET:ssä Datagrid:ssä muutettua ohjelmallisesti sarakeleveyksiä, kuten VB6:ssa Msflexgrid:ssä?
Löytyykö esimerkkiä myös miten otetaan tietokantaan yhteys ohjelmallisesti?
Moi Kristofer!
Dim MyTableStyle As DataGridTableStyle = New DataGridTableStyle() Dim MyTable As DataTable = CType(DataGrid1.DataSource, DataTable) MyTableStyle.MappingName = MyTable.TableName DataGrid1.TableStyles.Add(MyTableStyle) DataGrid1.TableStyles(0).GridColumnStyles(0).width = 100 DataGrid1.TableStyles(0).GridColumnStyles(1).width = 150 'jne. MyTable = Nothing
-Nea-
Moi taas Kristofer!
tässä hieman pidemmälle viety esimerkki DataGrid-objektin ominaisuusksien asettamiseen
Private Sub DataGrid1Layout(sender As System.Object, _ e As System.Windows.Forms.LayoutEventArgs) AdjustDataGridColumnsAndRows sender, sender.Name End Sub Public Sub AdjustDataGridColumnsAndRows( _ ByRef dgObject As DataGrid, ByVal dgName As String) If dgObject.VisibleRowCount > 0 Then Dim theLastCol AsLong, theLastRow As Long For i As Integer = 0 To dGrids.GetUpperBound(0) If dGrids(i).name = dgName Then theLastCol = dGrids(i).cols theLastRow = dGrids(i).rows End If Next i Dim p As System.Reflection.PropertyInfo Dim obj As Object(), i As Long For i As Integer = 0 to theLastCol p = dgObject.GetType.GetProperty( _ "DataGridColumns", BindingFlags.FlattenHierarchy Or _ BindingFlags.IgnoreCase Or BindingFlags.Instance Or _ BindingFlags.NonPublic Or BindingFlags.Public Or _ BindingFlags.Instance Or BindingFlags.Static) obj = p.GetValue(dgObject, _ BindingFlags.Instance Or BindingFlags.Static Or _ BindingFlags.GetProperty Or BindingFlags.Public Or _ BindingFlags.SuppressChangeType, Nothing, Nothing, Nothing) Select Case i Case 0 obj(i).Width = SomeValue 'Case etc... Case Else obj(i).Width = dgObject.PreferredColumnWidth End Select p = Nothing: obj = Nothing Next i For i As Integer = 0 To theLastRow p = dgObject.GetType.GetProperty( _ "DataGridRows", BindingFlags.FlattenHierarchy Or _ BindingFlags.IgnoreCase Or BindingFlags.Instance Or _ BindingFlags.NonPublic Or BindingFlags.Public Or _ BindingFlags.Instance Or BindingFlags.Static) obj = p.GetValue(dgObject, _ BindingFlags.Instance Or BindingFlags.Static Or _ BindingFlags.GetProperty Or BindingFlags.Public Or _ BindingFlags.SuppressChangeType, Nothing, Nothing, Nothing) Select Case i Case 0 obj(i).Height = SomeValue 'Case etc... Case Else obj(i).Height = dgObject.PreferredRowHeight End Select p = Nothing: obj = Nothing Next i End If End Sub
Hei,
Kiitos esimerkeistä, hyvin toimii tuo gridin sarakeleveyksien muuttaminen. Tuntuu vain siltä, että siirtyminen VB6:sta VB.NET:iin taitaa muodostaa melkoisen kynnyksen uuden oppimisessa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.