J'aimerais savoir si on peut bloquer l'élargissement des colonnes d'un
datagrid? Exemple : si mes colonnes de mon datagrid ont comme largeur 125,
j'aimerais pouvoir bloquer ces colonnes pour ne pas qu'un utilisateur modifie
ces largeurs.
Où bien, peut-on agrandir l'entête des colonnes pour écrire la description
de la colonne sur 2 lignes?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Annie L.
Pour ce qui est de l'entête des colonnes, il faut ajouter un saut de ligne dans le titre de la colonne. Exemple: Dim cs As New DataGridBoolColumn cd.HeaderText = "coucou" + Chr(10) + "tout le monde"
et augmenter 'Datagrid.HeaderFont.Size' à 18 devrait suffire. Et cela fonctionne très bien.
Il reste à trouver comment bloquer l'élargissement ou le rapetissement des colonnes!
Merci! "Annie L." wrote:
J'aimerais savoir si on peut bloquer l'élargissement des colonnes d'un datagrid? Exemple : si mes colonnes de mon datagrid ont comme largeur 125, j'aimerais pouvoir bloquer ces colonnes pour ne pas qu'un utilisateur modifie ces largeurs.
Où bien, peut-on agrandir l'entête des colonnes pour écrire la description de la colonne sur 2 lignes?
Pour ce qui est de l'entête des colonnes, il faut ajouter un saut de ligne
dans le titre de la colonne.
Exemple: Dim cs As New DataGridBoolColumn
cd.HeaderText = "coucou" + Chr(10) + "tout le monde"
et augmenter 'Datagrid.HeaderFont.Size' à 18 devrait suffire.
Et cela fonctionne très bien.
Il reste à trouver comment bloquer l'élargissement ou le rapetissement des
colonnes!
Merci!
"Annie L." wrote:
J'aimerais savoir si on peut bloquer l'élargissement des colonnes d'un
datagrid? Exemple : si mes colonnes de mon datagrid ont comme largeur 125,
j'aimerais pouvoir bloquer ces colonnes pour ne pas qu'un utilisateur modifie
ces largeurs.
Où bien, peut-on agrandir l'entête des colonnes pour écrire la description
de la colonne sur 2 lignes?
Pour ce qui est de l'entête des colonnes, il faut ajouter un saut de ligne dans le titre de la colonne. Exemple: Dim cs As New DataGridBoolColumn cd.HeaderText = "coucou" + Chr(10) + "tout le monde"
et augmenter 'Datagrid.HeaderFont.Size' à 18 devrait suffire. Et cela fonctionne très bien.
Il reste à trouver comment bloquer l'élargissement ou le rapetissement des colonnes!
Merci! "Annie L." wrote:
J'aimerais savoir si on peut bloquer l'élargissement des colonnes d'un datagrid? Exemple : si mes colonnes de mon datagrid ont comme largeur 125, j'aimerais pouvoir bloquer ces colonnes pour ne pas qu'un utilisateur modifie ces largeurs.
Où bien, peut-on agrandir l'entête des colonnes pour écrire la description de la colonne sur 2 lignes?
Zoury
Salut Annie! :O)
Tu dois (encore une fois) créer une classe qui hérite du DataGrid.. '*** Option Explicit On
Public Class DataGridEx Inherits System.Windows.Forms.DataGrid
' message de modifie de curseur Private Const WM_SETCURSOR As Int32 = &H20
Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
' Empêche le redimensionnement ' -> parce que le MouseDown est impossible lorsque ' le curseur est situé au dessus de la tite barre de ' séparation de colonne If (Me.HitTest(e.X, e.Y).Type = HitTestType.ColumnResize) Then Return End If
MyBase.OnMouseDown(e)
End Sub
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
' Empêche le curseur de changer lorsque le curseur ' passe au dessus de la tite barre de ' séparation de colonne If (m.Msg = WM_SETCURSOR) Then If (Me.HitTest(Me.PointToClient(Control.MousePosition)).Type HitTestType.ColumnResize) Then Return End If End If
MyBase.WndProc(m) End Sub
End Class '***
Note que si tu utilises encore la classe déjà hérité, tu n'as qu'à y ajouté ces modifications..
-- Cordialement Yanick MVP pour Visual Basic "Annie L." a écrit dans le message de news:
Pour ce qui est de l'entête des colonnes, il faut ajouter un saut de ligne dans le titre de la colonne. Exemple: Dim cs As New DataGridBoolColumn cd.HeaderText = "coucou" + Chr(10) + "tout le monde"
et augmenter 'Datagrid.HeaderFont.Size' à 18 devrait suffire. Et cela fonctionne très bien.
Il reste à trouver comment bloquer l'élargissement ou le rapetissement des colonnes!
Merci! "Annie L." wrote:
> J'aimerais savoir si on peut bloquer l'élargissement des colonnes d'un > datagrid? Exemple : si mes colonnes de mon datagrid ont comme largeur
125,
> j'aimerais pouvoir bloquer ces colonnes pour ne pas qu'un utilisateur
modifie
> ces largeurs.
> Où bien, peut-on agrandir l'entête des colonnes pour écrire la
description
> de la colonne sur 2 lignes?
Salut Annie! :O)
Tu dois (encore une fois) créer une classe qui hérite du DataGrid..
'***
Option Explicit On
Public Class DataGridEx
Inherits System.Windows.Forms.DataGrid
' message de modifie de curseur
Private Const WM_SETCURSOR As Int32 = &H20
Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
' Empêche le redimensionnement
' -> parce que le MouseDown est impossible lorsque
' le curseur est situé au dessus de la tite barre de
' séparation de colonne
If (Me.HitTest(e.X, e.Y).Type = HitTestType.ColumnResize) Then
Return
End If
MyBase.OnMouseDown(e)
End Sub
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
' Empêche le curseur de changer lorsque le curseur
' passe au dessus de la tite barre de
' séparation de colonne
If (m.Msg = WM_SETCURSOR) Then
If (Me.HitTest(Me.PointToClient(Control.MousePosition)).Type HitTestType.ColumnResize) Then
Return
End If
End If
MyBase.WndProc(m)
End Sub
End Class
'***
Note que si tu utilises encore la classe déjà hérité, tu n'as qu'à y ajouté
ces modifications..
--
Cordialement
Yanick
MVP pour Visual Basic
"Annie L." <AnnieL@discussions.microsoft.com> a écrit dans le message de
news:52F1A546-DCF1-4FC9-83FF-04EB68909135@microsoft.com...
Pour ce qui est de l'entête des colonnes, il faut ajouter un saut de ligne
dans le titre de la colonne.
Exemple: Dim cs As New DataGridBoolColumn
cd.HeaderText = "coucou" + Chr(10) + "tout le monde"
et augmenter 'Datagrid.HeaderFont.Size' à 18 devrait suffire.
Et cela fonctionne très bien.
Il reste à trouver comment bloquer l'élargissement ou le rapetissement des
colonnes!
Merci!
"Annie L." wrote:
> J'aimerais savoir si on peut bloquer l'élargissement des colonnes d'un
> datagrid? Exemple : si mes colonnes de mon datagrid ont comme largeur
125,
> j'aimerais pouvoir bloquer ces colonnes pour ne pas qu'un utilisateur
modifie
> ces largeurs.
> Où bien, peut-on agrandir l'entête des colonnes pour écrire la
Tu dois (encore une fois) créer une classe qui hérite du DataGrid.. '*** Option Explicit On
Public Class DataGridEx Inherits System.Windows.Forms.DataGrid
' message de modifie de curseur Private Const WM_SETCURSOR As Int32 = &H20
Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
' Empêche le redimensionnement ' -> parce que le MouseDown est impossible lorsque ' le curseur est situé au dessus de la tite barre de ' séparation de colonne If (Me.HitTest(e.X, e.Y).Type = HitTestType.ColumnResize) Then Return End If
MyBase.OnMouseDown(e)
End Sub
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
' Empêche le curseur de changer lorsque le curseur ' passe au dessus de la tite barre de ' séparation de colonne If (m.Msg = WM_SETCURSOR) Then If (Me.HitTest(Me.PointToClient(Control.MousePosition)).Type HitTestType.ColumnResize) Then Return End If End If
MyBase.WndProc(m) End Sub
End Class '***
Note que si tu utilises encore la classe déjà hérité, tu n'as qu'à y ajouté ces modifications..
-- Cordialement Yanick MVP pour Visual Basic "Annie L." a écrit dans le message de news:
Pour ce qui est de l'entête des colonnes, il faut ajouter un saut de ligne dans le titre de la colonne. Exemple: Dim cs As New DataGridBoolColumn cd.HeaderText = "coucou" + Chr(10) + "tout le monde"
et augmenter 'Datagrid.HeaderFont.Size' à 18 devrait suffire. Et cela fonctionne très bien.
Il reste à trouver comment bloquer l'élargissement ou le rapetissement des colonnes!
Merci! "Annie L." wrote:
> J'aimerais savoir si on peut bloquer l'élargissement des colonnes d'un > datagrid? Exemple : si mes colonnes de mon datagrid ont comme largeur
125,
> j'aimerais pouvoir bloquer ces colonnes pour ne pas qu'un utilisateur
modifie
> ces largeurs.
> Où bien, peut-on agrandir l'entête des colonnes pour écrire la
description
> de la colonne sur 2 lignes?
Zoury
quelques petits conseils..
cd.HeaderText = "coucou" + Chr(10) + "tout le monde"
1. Les constantes
Utilise vbNewLine au lieu de Chr(10). C'est plus clair, plus rapide (ce n'est pas une fonction) et de plus Chr(10) n'est pas complet... il faudrait Chr(13) & Chr(10) pour obtenir un *vrai* retour de chariot Windows.
2.1 Les concaténations "on the fly"
utilise la perluette & pour effectuer une concaténation de chaine de caractère. utilise le plus + seulement lorsque tu additionnes des nombres.
Cela t'évitera des problèmes dû à des conversions de types automatiques fait par VB. De plus, ça fait en sorte que le code parle de lui même... on sait d'un coup d'oeil qu'il s'agit d'une concaténaiton ou d'une addition.
2.2 Mais personnellement, j'évite ce type de concaténation... Les concaténations/modifications de chaine sous .NET sous très lente car il faut *à chaque fois* recréer une toute nouvelle chaine en mémoire. Ce principe devient très très lourd au fur et à mesure que le chaine grossit...
Donc dans ce cas ci j'utiliserais String.Format() : '*** cd.HeaderText = String.Format("coucou{0}tout le monde", vbNewLine) '*** et pour les concaténations plus importante (en quantité), je te recommande fortement le StringBuilder.
-- Cordialement Yanick MVP pour Visual Basic
quelques petits conseils..
cd.HeaderText = "coucou" + Chr(10) + "tout le monde"
1. Les constantes
Utilise vbNewLine au lieu de Chr(10). C'est plus clair, plus rapide (ce
n'est pas une fonction) et de plus Chr(10) n'est pas complet... il faudrait
Chr(13) & Chr(10) pour obtenir un *vrai* retour de chariot Windows.
2.1 Les concaténations "on the fly"
utilise la perluette & pour effectuer une concaténation de chaine de
caractère.
utilise le plus + seulement lorsque tu additionnes des nombres.
Cela t'évitera des problèmes dû à des conversions de types automatiques fait
par VB. De plus, ça fait en sorte que le code parle de lui même... on sait
d'un coup d'oeil qu'il s'agit d'une concaténaiton ou d'une addition.
2.2 Mais personnellement, j'évite ce type de concaténation... Les
concaténations/modifications de chaine sous .NET sous très lente car il faut
*à chaque fois* recréer une toute nouvelle chaine en mémoire. Ce principe
devient très très lourd au fur et à mesure que le chaine grossit...
Donc dans ce cas ci j'utiliserais String.Format() :
'***
cd.HeaderText = String.Format("coucou{0}tout le monde", vbNewLine)
'***
et pour les concaténations plus importante (en quantité), je te recommande
fortement le StringBuilder.
cd.HeaderText = "coucou" + Chr(10) + "tout le monde"
1. Les constantes
Utilise vbNewLine au lieu de Chr(10). C'est plus clair, plus rapide (ce n'est pas une fonction) et de plus Chr(10) n'est pas complet... il faudrait Chr(13) & Chr(10) pour obtenir un *vrai* retour de chariot Windows.
2.1 Les concaténations "on the fly"
utilise la perluette & pour effectuer une concaténation de chaine de caractère. utilise le plus + seulement lorsque tu additionnes des nombres.
Cela t'évitera des problèmes dû à des conversions de types automatiques fait par VB. De plus, ça fait en sorte que le code parle de lui même... on sait d'un coup d'oeil qu'il s'agit d'une concaténaiton ou d'une addition.
2.2 Mais personnellement, j'évite ce type de concaténation... Les concaténations/modifications de chaine sous .NET sous très lente car il faut *à chaque fois* recréer une toute nouvelle chaine en mémoire. Ce principe devient très très lourd au fur et à mesure que le chaine grossit...
Donc dans ce cas ci j'utiliserais String.Format() : '*** cd.HeaderText = String.Format("coucou{0}tout le monde", vbNewLine) '*** et pour les concaténations plus importante (en quantité), je te recommande fortement le StringBuilder.
-- Cordialement Yanick MVP pour Visual Basic
Annie L.
Quels judicieux conseils!!!!! Cela fonctionne très bien! Pour ce qui est de la 'perluette', je l'utilise en tout temps. L'exemple que j'ai écrit dans ce 'post' a été trouvé sur un site et je n'ai pas tenu compte du "+". C'est très intéressant d'avoir des meilleures méthodes de travail pour la programmation en VB.NET Comme je vois, j'utilise encore des méthodes de VB6, mais ce n'est pas évident de trouver les méthodes de Vb6 dans mon code et de les remplacer par des méthodes VB.NET Un gros merci!
"Zoury" wrote:
quelques petits conseils.. > cd.HeaderText = "coucou" + Chr(10) + "tout le monde"
1. Les constantes
Utilise vbNewLine au lieu de Chr(10). C'est plus clair, plus rapide (ce n'est pas une fonction) et de plus Chr(10) n'est pas complet... il faudrait Chr(13) & Chr(10) pour obtenir un *vrai* retour de chariot Windows.
2.1 Les concaténations "on the fly"
utilise la perluette & pour effectuer une concaténation de chaine de caractère. utilise le plus + seulement lorsque tu additionnes des nombres.
Cela t'évitera des problèmes dû à des conversions de types automatiques fait par VB. De plus, ça fait en sorte que le code parle de lui même... on sait d'un coup d'oeil qu'il s'agit d'une concaténaiton ou d'une addition.
2.2 Mais personnellement, j'évite ce type de concaténation... Les concaténations/modifications de chaine sous .NET sous très lente car il faut *à chaque fois* recréer une toute nouvelle chaine en mémoire. Ce principe devient très très lourd au fur et à mesure que le chaine grossit...
Donc dans ce cas ci j'utiliserais String.Format() : '*** cd.HeaderText = String.Format("coucou{0}tout le monde", vbNewLine) '*** et pour les concaténations plus importante (en quantité), je te recommande fortement le StringBuilder.
-- Cordialement Yanick MVP pour Visual Basic
Quels judicieux conseils!!!!!
Cela fonctionne très bien!
Pour ce qui est de la 'perluette', je l'utilise en tout temps.
L'exemple que j'ai écrit dans ce 'post' a été trouvé sur un site et je n'ai
pas tenu compte du "+".
C'est très intéressant d'avoir des meilleures méthodes de travail pour la
programmation en VB.NET
Comme je vois, j'utilise encore des méthodes de VB6, mais ce n'est pas
évident de trouver les méthodes de Vb6 dans mon code et de les remplacer par
des méthodes VB.NET
Un gros merci!
"Zoury" wrote:
quelques petits conseils..
> cd.HeaderText = "coucou" + Chr(10) + "tout le monde"
1. Les constantes
Utilise vbNewLine au lieu de Chr(10). C'est plus clair, plus rapide (ce
n'est pas une fonction) et de plus Chr(10) n'est pas complet... il faudrait
Chr(13) & Chr(10) pour obtenir un *vrai* retour de chariot Windows.
2.1 Les concaténations "on the fly"
utilise la perluette & pour effectuer une concaténation de chaine de
caractère.
utilise le plus + seulement lorsque tu additionnes des nombres.
Cela t'évitera des problèmes dû à des conversions de types automatiques fait
par VB. De plus, ça fait en sorte que le code parle de lui même... on sait
d'un coup d'oeil qu'il s'agit d'une concaténaiton ou d'une addition.
2.2 Mais personnellement, j'évite ce type de concaténation... Les
concaténations/modifications de chaine sous .NET sous très lente car il faut
*à chaque fois* recréer une toute nouvelle chaine en mémoire. Ce principe
devient très très lourd au fur et à mesure que le chaine grossit...
Donc dans ce cas ci j'utiliserais String.Format() :
'***
cd.HeaderText = String.Format("coucou{0}tout le monde", vbNewLine)
'***
et pour les concaténations plus importante (en quantité), je te recommande
fortement le StringBuilder.
Quels judicieux conseils!!!!! Cela fonctionne très bien! Pour ce qui est de la 'perluette', je l'utilise en tout temps. L'exemple que j'ai écrit dans ce 'post' a été trouvé sur un site et je n'ai pas tenu compte du "+". C'est très intéressant d'avoir des meilleures méthodes de travail pour la programmation en VB.NET Comme je vois, j'utilise encore des méthodes de VB6, mais ce n'est pas évident de trouver les méthodes de Vb6 dans mon code et de les remplacer par des méthodes VB.NET Un gros merci!
"Zoury" wrote:
quelques petits conseils.. > cd.HeaderText = "coucou" + Chr(10) + "tout le monde"
1. Les constantes
Utilise vbNewLine au lieu de Chr(10). C'est plus clair, plus rapide (ce n'est pas une fonction) et de plus Chr(10) n'est pas complet... il faudrait Chr(13) & Chr(10) pour obtenir un *vrai* retour de chariot Windows.
2.1 Les concaténations "on the fly"
utilise la perluette & pour effectuer une concaténation de chaine de caractère. utilise le plus + seulement lorsque tu additionnes des nombres.
Cela t'évitera des problèmes dû à des conversions de types automatiques fait par VB. De plus, ça fait en sorte que le code parle de lui même... on sait d'un coup d'oeil qu'il s'agit d'une concaténaiton ou d'une addition.
2.2 Mais personnellement, j'évite ce type de concaténation... Les concaténations/modifications de chaine sous .NET sous très lente car il faut *à chaque fois* recréer une toute nouvelle chaine en mémoire. Ce principe devient très très lourd au fur et à mesure que le chaine grossit...
Donc dans ce cas ci j'utiliserais String.Format() : '*** cd.HeaderText = String.Format("coucou{0}tout le monde", vbNewLine) '*** et pour les concaténations plus importante (en quantité), je te recommande fortement le StringBuilder.