Bonjour,
J'ai créé un petit datagrid, je gère l'auto dimensionnement de mes lignes grâce à cette classe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 Imports System Imports System.Reflection Public Class DataGridRowHeightSetter Private dg As DataGrid Private rowObjects As ArrayList Public Sub New(ByVal dg As DataGrid) Me.dg = dg InitHeights() End Sub Private Sub InitHeights() Dim mi As MethodInfo = dg.GetType().GetMethod("get_DataGridRows", BindingFlags.FlattenHierarchy Or BindingFlags.IgnoreCase Or BindingFlags.Instance Or BindingFlags.NonPublic Or BindingFlags.Public Or BindingFlags.Static) Dim dgra As System.Array = CType(mi.Invoke(Me.dg, Nothing), System.Array) rowObjects = New ArrayList Dim dgrr As Object For Each dgrr In dgra If dgrr.ToString().EndsWith("DataGridRelationshipRow") = True Then rowObjects.Add(dgrr) End If Next dgrr End Sub Default Public Property Item(ByVal row As Integer) As Integer Get Try Dim pi As PropertyInfo = rowObjects(row).GetType().GetProperty("Height") Return Fix(pi.GetValue(rowObjects(row), Nothing)) Catch Throw New ArgumentException("invalid row index") End Try End Get Set(ByVal Value As Integer) Try Dim pi As PropertyInfo = rowObjects(row).GetType().GetProperty("Height") pi.SetValue(rowObjects(row), Value, Nothing) Catch Throw New ArgumentException("invalid row index") End Try End Set End Property End Class
Cela marche bien excepté l'absence de scrollbar Vertical lorsque je depasse la taille de mon datagrid
![]()
Partager