Bonjour
en VB.NET, losque je désactive un Datagrid en mettant la propriété Enabled à False, les ascenseurs de la DataGrid disparaissent, mais ne réapparaissent pas lorsque je remets la propriété Enabled à True, dans le cas où une ligne a été ajoutée au DataGrid.
Il faut redimensionner le Form pour qu'ils reviennent.
Si aucune ligne n'est ajoutée, les ascenseurs réapparaissent.
Voici un exemple :
(les 4 boutons doivent être cliqués dans l'ordre de 1 à 4)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim dw As dataview
Dim dt As DataTable
Dim v(2) As Object
Dim dgs As DataGridTableStyle
Try
Me.DataGrid1.AlternatingBackColor = Color.Beige
dt = New DataTable("TOTO")
dt.Columns.Add("col1", System.Type.GetType("System.String"))
dt.Columns.Add("col2", System.Type.GetType("System.String"))
dt.Columns.Add("col3", System.Type.GetType("System.String"))
v(0) = "v1"
v(1) = "v2"
v(2) = "v3"
dt.Rows.Add(v)
v(0) = "c1"
v(1) = "c2"
v(2) = "c3"
dt.Rows.Add(v)
v(0) = "g1"
v(1) = "g2"
v(2) = "g3"
dt.Rows.Add(v)
v(0) = "t1"
v(1) = "t2"
v(2) = "t3"
dt.Rows.Add(v)
v(0) = "s1"
v(1) = "s2"
v(2) = "s3"
dt.Rows.Add(v)
v(0) = "j1"
v(1) = "j2"
v(2) = "j3"
dt.Rows.Add(v)
v(0) = "k1"
v(1) = "k2"
v(2) = "k3"
dt.Rows.Add(v)
v(0) = "jj1"
v(1) = "jj2"
v(2) = "jj3"
dt.Rows.Add(v)
dw = New DataView(dt)
dw.AllowNew = False
dw.AllowEdit = False
dw.AllowDelete = False
dw.Sort = "col1"
Me.DataGrid1.SetDataBinding(dw, "")
dgs = New DataGridTableStyle
dgs.MappingName = "TOTO"
dgs.AlternatingBackColor = Color.Beige
Me.DataGrid1.TableStyles.Add(dgs)
Me.Button1.Enabled = False
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.DataGrid1.Enabled = False
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim v(2) As Object
Dim dw As DataView
Dim dt As DataTable
dw = Me.DataGrid1.DataSource
dt = dw.Table
v(0) = "ajout1"
v(1) = "ajout2"
v(2) = "ajout3"
dt.Rows.Add(v)
Me.Button4.Enabled = False
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim dw As DataView
Dim dt As DataTable
dw = Me.DataGrid1.DataSource
dt = dw.Table
Me.DataGrid1.Enabled = True
End Sub
=====================================================================
Merci d'avance
Chris