Redimensionner colonne datagrid VB.NET

cs_bob10 Messages postés 96 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 28 janvier 2009 - 18 mai 2004 à 08:41
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 - 18 mai 2004 à 15:52
Salut tout le monde,
Peut on redimmensionner les colonnes d'un datagrid en VB.NET une par une avec une valeur différente
Merci d'avance
:-p bob le teigneux :big)

3 réponses

cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
18 mai 2004 à 12:01
labout
Oui avec DataGridTableStyle

Voici un exemple

'==================
' a mettre après Inherits System.Windows.Forms.Form
Public ds As New DataSet
Private dv As DataView
' Initiate a new OleDb Data Adapter
Public dbAdaptr As System.Data.OleDb.OleDbDataAdapter = New System.Data.OleDb.OleDbDataAdapter
Public conStr As String = sConnectstring ' c'est la chaine de connection
' Define Connection to Samples.mdb
Public cn As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection(conStr)
'===================
'===================
' a mettre dans le load
With dbAdaptr
' remplit la table
.TableMappings.Add("Table", "Film")
Dim SQLStr As String = _
"SELECT Film.idFilm, Film.TitreLong, [Film].[numero], Genre.genre, Film.Titre, Film.Realisateur,[Images].[Image], Liens.Lien, Film.Acteur, Film.Annee, Pays.Pays, Film.Duree, Film.Comments,Film.Idlien " & _ " FROM Pays INNER JOIN (Liens INNER JOIN ((Genre INNER JOIN Film ON Genre.idGenre Film.idGenre) LEFT OUTER JOIN Images ON Film.idImage Images.idImage) ON Liens.idLien = Film.iDLien) ON Pays.idpays = Film.idpays;"
'Dim rs As New ADODB.Recordset
'rs = gOcnx.Execute(SQLStr)

Dim cmd As System.Data.OleDb.OleDbCommand = New System.Data.OleDb.OleDbCommand(SQLStr, cn)
cmd.CommandType = CommandType.Text
.SelectCommand = cmd
.Fill(ds)
' je remets le chemin de l'image dans le dataset mais pas dans la table
For i = 0 To ds.Tables(0).Rows.Count - 1
If Not IsDBNull(ds.Tables(0).Rows(i).Item(6)) Then
If ds.Tables(0).Rows(i).Item(6) <> "" Then
ds.Tables(0).Rows(i).Item(6) = RepAffiches & ds.Tables(0).Rows(i).Item(6)
Else
ds.Tables(0).Rows(i).Item(6) = "Pas d'image"
End If
Else
ds.Tables(0).Rows(i).Item(6) = "Pas d'image"
End If
Next
.Dispose()
'cmd.Cancel()
End With
Dim TblStyle As New DataGridTableStyle
Dim tblCrrncMngr As CurrencyManager = CType(BindingContext(ds.Tables.Item("Film")), CurrencyManager)
With TblStyle
.MappingName = "Film"
.BackColor = System.Drawing.Color.White
.ForeColor = System.Drawing.Color.DarkSlateBlue
.GridLineColor = System.Drawing.Color.MediumSlateBlue
.HeaderBackColor = System.Drawing.Color.Lavender
.HeaderForeColor = System.Drawing.Color.MediumSlateBlue
.AlternatingBackColor = Color.LightGray
.RowHeaderWidth = 10
' Set column styles
With .GridColumnStyles
' Set datagrid ColumnStyle for film field
.Add(New DataGridTextBoxColumn(tblCrrncMngr.GetItemProperties.Item("idFilm")))
With .Item(0)
.MappingName = "IdFilm"
.HeaderText = "iD"
.Width = 25
.NullText = String.Empty
End With
.Add(New DataGridTextBoxColumn(tblCrrncMngr.GetItemProperties.Item("TitreLong")))
With .Item(1)
.MappingName = "TitreLong"
.HeaderText = "Titre long"
.Width = 125
.NullText = String.Empty
End With
.Add(New DataGridTextBoxColumn(tblCrrncMngr.GetItemProperties.Item("Titre")))
With .Item(2)
.MappingName = "Titre"
.HeaderText = "Titre"
.Width = 110
.NullText = String.Empty
End With
.Add(New DataGridTextBoxColumn(tblCrrncMngr.GetItemProperties.Item("Numero")))
With .Item(3)
.MappingName = "Numero"
.HeaderText = "Numéro"
.Width = 65
.NullText = String.Empty
End With
.Add(New DataGridTextBoxColumn(tblCrrncMngr.GetItemProperties.Item("Genre")))
With .Item(4)
.MappingName = "Genre"
.HeaderText = "Genre"
.Width = 100
.NullText = String.Empty
End With
.Add(New DataGridTextBoxColumn(tblCrrncMngr.GetItemProperties.Item("Realisateur")))
With .Item(5)
.MappingName = "Realisateur"
.HeaderText = "Réalisateur"
.Width = 90
.NullText = String.Empty
End With

.Add(New DataGridTextBoxColumn(tblCrrncMngr.GetItemProperties.Item("Lien")))
With .Item(6)
.MappingName = "Lien"
.HeaderText = "Lien"
.Width = 170
.NullText = String.Empty
End With

.Add(New DataGridTextBoxColumn(tblCrrncMngr.GetItemProperties.Item("Annee")))
With .Item(7)
.MappingName = "Annee"
.HeaderText = "Année"
.Width = 50
.NullText = String.Empty
End With

.Add(New DataGridTextBoxColumn(tblCrrncMngr.GetItemProperties.Item("Pays")))
With .Item(8)
.MappingName = "Pays"
.HeaderText = "Pays"
.Width = 90
.NullText = String.Empty
End With
.Add(New DataGridTextBoxColumn(tblCrrncMngr.GetItemProperties.Item("Duree")))
With .Item(9)
.MappingName = "Duree"
.HeaderText = "Durée"
.Width = 70
.NullText = String.Empty
End With
.Add(New DataGridMemoColumn("iDlien"))
With .Item(10)
.MappingName = "iDlien"
.HeaderText = "iDlien"
.Width = 1
.NullText = String.Empty
End With

End With
End With
DataGrid1.TableStyles.Add(TblStyle)

Les possibilités standard sont
DataGridBoolColumn

@+
0
cs_bob10 Messages postés 96 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 28 janvier 2009
18 mai 2004 à 15:17
Merci beaucoup pour ces précieux renseignements
et @+
:-p bob le teigneux :big)
0
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
18 mai 2004 à 15:52
labout
Attention
DataGridMemoColumn
n'est pas du standard.
Cela provient de ma DLL mise sur le source
qui permet des combobox, des champs mémo etc..
http://www.vbfrance.com/listeauteur2.aspx?ID=1612
si vous arrivez car cela rame dramatiquement aujourdhui.
@+
0
Rejoignez-nous