OVH Cloud OVH Cloud

Formatage dans états

3 réponses
Avatar
Antoine Labusquière
Bonjour à tous.

Dans un état, j'ai un champ dont la hauteur peut varier en fonction de la
taille de son contenu grâve à la proriété autoextensible)
Comme tous les champs ont une bordure, par soucis de visibilité, il s'avère
que les champs "normaux" ont une hauteur de mettons 0.5cm, et le champ
"spécial" de 1cm
Comment pourrais-je faire pour agrandir automatiquement tous les champs à la
hauteur la plus grande ?

J'ai écris la fonction suivante, mais ça ne marche pô

Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
Dim hauteur As Single
Dim moncontrol As Control

hauteur = 0
For Each moncontrol In Détail.Controls
'MsgBox moncontrol.Name & ": " & moncontrol.Height
If moncontrol.Height > hauteur Then hauteur = moncontrol.Height
Next moncontrol

For Each moncontrol In Détail.Controls
moncontrol.Height = hauteur
Next moncontrol

End Sub

Merci pour vos lumières...

3 réponses

Avatar
Antoine Labusquière
En fait, après tests, la deuxième partie de la fonction marche: je peux
redimenssioner les champs sans problème.
Le soucis vient du fait que même si un champ est redimensionné
automatiquement pour le le champ s'adapte à la taille du contenu, sa hauteur
(controle.height) reste toujours à la valeur de départ...

Donc, la question reste: comment connaître la hauteur d'un contrôle après
formatage ?

"Antoine Labusquière" a écrit dans
le message de news:crtq0q$9ap$
Bonjour à tous.

Dans un état, j'ai un champ dont la hauteur peut varier en fonction de la
taille de son contenu grâve à la proriété autoextensible)
Comme tous les champs ont une bordure, par soucis de visibilité, il
s'avère

que les champs "normaux" ont une hauteur de mettons 0.5cm, et le champ
"spécial" de 1cm
Comment pourrais-je faire pour agrandir automatiquement tous les champs à
la

hauteur la plus grande ?

J'ai écris la fonction suivante, mais ça ne marche pô

Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
Dim hauteur As Single
Dim moncontrol As Control

hauteur = 0
For Each moncontrol In Détail.Controls
'MsgBox moncontrol.Name & ": " & moncontrol.Height
If moncontrol.Height > hauteur Then hauteur = moncontrol.Height
Next moncontrol

For Each moncontrol In Détail.Controls
moncontrol.Height = hauteur
Next moncontrol

End Sub

Merci pour vos lumières...




Avatar
Maurice FAUX
Antoine,

Je suis heureux de ta question, parce que je rencontre aussi ce problème
dans mon application. Malheureusement je n'ai pas de réponse actuellement.

Mais j'ai une question complémentaire : je voudrais pouvoir obliger le texte
à se placer en bas du contrôle, comme on peut le faire dans Excel (format de
cellule), lorsque le contrôle a été agrandi automatiquement.

Je sais que cela peut paraître chinois comme question, mais ce serait
vraiment sympa de trouver une aide à ce sujet.

Merci à toutes les bonnes volontés.

Maurice

"Antoine Labusquière" a écrit dans
le message de news: cru0qo$dmq$
En fait, après tests, la deuxième partie de la fonction marche: je peux
redimenssioner les champs sans problème.
Le soucis vient du fait que même si un champ est redimensionné
automatiquement pour le le champ s'adapte à la taille du contenu, sa
hauteur

(controle.height) reste toujours à la valeur de départ...

Donc, la question reste: comment connaître la hauteur d'un contrôle après
formatage ?

"Antoine Labusquière" a écrit dans
le message de news:crtq0q$9ap$
Bonjour à tous.

Dans un état, j'ai un champ dont la hauteur peut varier en fonction de
la


taille de son contenu grâve à la proriété autoextensible)
Comme tous les champs ont une bordure, par soucis de visibilité, il
s'avère

que les champs "normaux" ont une hauteur de mettons 0.5cm, et le champ
"spécial" de 1cm
Comment pourrais-je faire pour agrandir automatiquement tous les champs
à


la
hauteur la plus grande ?

J'ai écris la fonction suivante, mais ça ne marche pô

Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
Dim hauteur As Single
Dim moncontrol As Control

hauteur = 0
For Each moncontrol In Détail.Controls
'MsgBox moncontrol.Name & ": " & moncontrol.Height
If moncontrol.Height > hauteur Then hauteur = moncontrol.Height
Next moncontrol

For Each moncontrol In Détail.Controls
moncontrol.Height = hauteur
Next moncontrol

End Sub

Merci pour vos lumières...








Avatar
Maurice FAUX
Antoine,

Je suis heureux de ta question, parce que je rencontre aussi ce problème
dans mon application. Malheureusement je n'ai pas de réponse actuellement.

Mais j'ai une question complémentaire : je voudrais pouvoir obliger le texte
à se placer en bas du contrôle, comme on peut le faire dans Excel (format de
cellule), lorsque le contrôle a été agrandi automatiquement.

Je sais que cela peut paraître chinois comme question, mais ce serait
vraiment sympa de trouver une aide à ce sujet.

Merci à toutes les bonnes volontés.

Maurice


"Antoine Labusquière" a écrit dans
le message de news: cru0qo$dmq$
En fait, après tests, la deuxième partie de la fonction marche: je peux
redimenssioner les champs sans problème.
Le soucis vient du fait que même si un champ est redimensionné
automatiquement pour le le champ s'adapte à la taille du contenu, sa
hauteur

(controle.height) reste toujours à la valeur de départ...

Donc, la question reste: comment connaître la hauteur d'un contrôle après
formatage ?

"Antoine Labusquière" a écrit dans
le message de news:crtq0q$9ap$
Bonjour à tous.

Dans un état, j'ai un champ dont la hauteur peut varier en fonction de
la


taille de son contenu grâve à la proriété autoextensible)
Comme tous les champs ont une bordure, par soucis de visibilité, il
s'avère

que les champs "normaux" ont une hauteur de mettons 0.5cm, et le champ
"spécial" de 1cm
Comment pourrais-je faire pour agrandir automatiquement tous les champs
à


la
hauteur la plus grande ?

J'ai écris la fonction suivante, mais ça ne marche pô

Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
Dim hauteur As Single
Dim moncontrol As Control

hauteur = 0
For Each moncontrol In Détail.Controls
'MsgBox moncontrol.Name & ": " & moncontrol.Height
If moncontrol.Height > hauteur Then hauteur = moncontrol.Height
Next moncontrol

For Each moncontrol In Détail.Controls
moncontrol.Height = hauteur
Next moncontrol

End Sub

Merci pour vos lumières...