OVH Cloud OVH Cloud

Contrôles dans un panel qui se balladent

4 réponses
Avatar
Olivier57b
Bonjour,

Voici mon pb: je développe une programme de gestion des courses au
supermarché; il affiche une liste de produits (classés par catégorie, par ex
haricots dans légumes), et pour chaque produit il affiche: une checkBox (qui
permet de sélectionner le produit, un bouton Imprimer permet une sortie
papier des produits sélectionnés; la checkBox permet aussi d'afficher le nom
du produit), deux listBox pour la quantité: si l'on veut 1 boîte de haricots,
on choisit le nombre dans la première listBox et "Boîte" dans la deuxième
listBox.
Mais j'ai un pb d'affichage des contrôles de nouveaux produits, et ceci de
temps en temps seulement.Les contrôles de ce produit sont à la bonne hauteur,
mais sont décalés horizontalement, vers la droite; et si je crée deux
nouveaux produits dans cette colonne, le deuxième peut être encore plus
décalé que le premier, ou décalé autant que le premier. Après une série de
trois produits décalés, il est arrivé que le quatrième soit bien placé.
Je précise que les contrôles sont regroupés normalement (cad la checkBox est
à côté des deux listBox), et que les propriété .left des contrôles sont
normales (donc le décalage ne vient pas de là).


Voici le code:

'btnPdt est le bouton qui permet de rajouter un produit


Private Sub BtnPdt_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnPdt.Click

' acquisition du nb de pdts ds cette catégorie, pour pv rajouter le pdt au
bon 'endroit
Dim NbPdt1 As Integer
NbPdt1 = TAQueries.NbPdt(CbxSup.Text, lsbCat.SelectedItem)

'acquisition de: PdtPar (nom du nvo pdt), CatCNbPar (numéro de la
colonne du nvo 'pdt) et de PdtNbPar (rien de nvo, c'est juste un changement
de nom de variable)
Dim pdtPar = InputBox("Entrez le nom du produit", "COURSES")
Dim CatCNbPar As Integer = lsbCat.SelectedIndex + 1
' on avait PdtNbPar commence par 0
Dim PdtNbPar As Integer = NbPdt1

'rajout des contrôles ds le panel
Dim FonteFam1 As New FontFamily("Georgia")
Dim Police1 As New Font(FonteFam1, 10, FontStyle.Regular,
GraphicsUnit.Pixel)

'checkBox
Dim myChkBox As New CheckBox()
With myChkBox
'Pour le nom, on commence par Ckb 1.1
.Name = "Ckb " & CType(CatCNbPar, String) & "." & CType(PdtNbPar
+ 1, String)
.Text = pdtPar
Dim ckbVal As GraphicsUnit = GraphicsUnit.Pixel
.Width = 75
.BackColor = Color.OliveDrab
.ForeColor = Color.Yellow
.Left = 26 + 232 * (CatCNbPar - 1)
'PdtNbPar commence à 1
.Top = 226 - 163 + 20 * PdtNbPar
.Font = Police1
'.Width = 160
'.Height = 20
End With
'en +, qd chkboxClickChanged, placer le curseur sur la lstBox associée
AddHandler myChkBox.CheckedChanged, AddressOf GiveFocus
pnlCatPdt.Controls.Add(myChkBox)


Je ne sais pas du tout à quoi c'est dû, si vous avez une idée, elle est la
bienvenue!

4 réponses

Avatar
X
Bonjour,

Peut être les polices, pour avoir la même proportion il faut une police
à taille fixe (couRier new)???

J'ai fait une liste de course par drag and drop, si tu veux voir:

http://irolog.free.fr/irolog_vente/courses_v/index.htm


------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"Olivier57b" a écrit dans le message
de news:
Bonjour,

Voici mon pb: je développe une programme de gestion des courses au
supermarché; il affiche une liste de produits (classés par catégorie, par
ex
haricots dans légumes), et pour chaque produit il affiche: une checkBox
(qui
permet de sélectionner le produit, un bouton Imprimer permet une sortie
papier des produits sélectionnés; la checkBox permet aussi d'afficher le
nom
du produit), deux listBox pour la quantité: si l'on veut 1 boîte de
haricots,
on choisit le nombre dans la première listBox et "Boîte" dans la deuxième
listBox.
Mais j'ai un pb d'affichage des contrôles de nouveaux produits, et ceci de
temps en temps seulement.Les contrôles de ce produit sont à la bonne
hauteur,
mais sont décalés horizontalement, vers la droite; et si je crée deux
nouveaux produits dans cette colonne, le deuxième peut être encore plus
décalé que le premier, ou décalé autant que le premier. Après une série de
trois produits décalés, il est arrivé que le quatrième soit bien placé.
Je précise que les contrôles sont regroupés normalement (cad la checkBox
est
à côté des deux listBox), et que les propriété .left des contrôles sont
normales (donc le décalage ne vient pas de là).


Voici le code:

'btnPdt est le bouton qui permet de rajouter un produit


Private Sub BtnPdt_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnPdt.Click

' acquisition du nb de pdts ds cette catégorie, pour pv rajouter le pdt au
bon 'endroit
Dim NbPdt1 As Integer
NbPdt1 = TAQueries.NbPdt(CbxSup.Text, lsbCat.SelectedItem)

'acquisition de: PdtPar (nom du nvo pdt), CatCNbPar (numéro de la
colonne du nvo 'pdt) et de PdtNbPar (rien de nvo, c'est juste un
changement
de nom de variable)
Dim pdtPar = InputBox("Entrez le nom du produit", "COURSES")
Dim CatCNbPar As Integer = lsbCat.SelectedIndex + 1
' on avait PdtNbPar commence par 0
Dim PdtNbPar As Integer = NbPdt1

'rajout des contrôles ds le panel
Dim FonteFam1 As New FontFamily("Georgia")
Dim Police1 As New Font(FonteFam1, 10, FontStyle.Regular,
GraphicsUnit.Pixel)

'checkBox
Dim myChkBox As New CheckBox()
With myChkBox
'Pour le nom, on commence par Ckb 1.1
.Name = "Ckb " & CType(CatCNbPar, String) & "." &
CType(PdtNbPar
+ 1, String)
.Text = pdtPar
Dim ckbVal As GraphicsUnit = GraphicsUnit.Pixel
.Width = 75
.BackColor = Color.OliveDrab
.ForeColor = Color.Yellow
.Left = 26 + 232 * (CatCNbPar - 1)
'PdtNbPar commence à 1
.Top = 226 - 163 + 20 * PdtNbPar
.Font = Police1
'.Width = 160
'.Height = 20
End With
'en +, qd chkboxClickChanged, placer le curseur sur la lstBox
associée
AddHandler myChkBox.CheckedChanged, AddressOf GiveFocus
pnlCatPdt.Controls.Add(myChkBox)


Je ne sais pas du tout à quoi c'est dû, si vous avez une idée, elle est la
bienvenue!



Avatar
Olivier57b
J'ai essayé de remplacer la police par du Courier New, mais ça n'a rien
changé. Je pense à une propriété du panel, mais je suis dans le flou...

Bien essayé!

"X" wrote:

Bonjour,

Peut être les polices, pour avoir la même proportion il faut une police
à taille fixe (couRier new)???

J'ai fait une liste de course par drag and drop, si tu veux voir:

http://irolog.free.fr/irolog_vente/courses_v/index.htm


------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"Olivier57b" a écrit dans le message
de news:
> Bonjour,
>
> Voici mon pb: je développe une programme de gestion des courses au
> supermarché; il affiche une liste de produits (classés par catégorie, par
> ex
> haricots dans légumes), et pour chaque produit il affiche: une checkBox
> (qui
> permet de sélectionner le produit, un bouton Imprimer permet une sortie
> papier des produits sélectionnés; la checkBox permet aussi d'afficher le
> nom
> du produit), deux listBox pour la quantité: si l'on veut 1 boîte de
> haricots,
> on choisit le nombre dans la première listBox et "Boîte" dans la deuxième
> listBox.
> Mais j'ai un pb d'affichage des contrôles de nouveaux produits, et ceci de
> temps en temps seulement.Les contrôles de ce produit sont à la bonne
> hauteur,
> mais sont décalés horizontalement, vers la droite; et si je crée deux
> nouveaux produits dans cette colonne, le deuxième peut être encore plus
> décalé que le premier, ou décalé autant que le premier. Après une série de
> trois produits décalés, il est arrivé que le quatrième soit bien placé.
> Je précise que les contrôles sont regroupés normalement (cad la checkBox
> est
> à côté des deux listBox), et que les propriété .left des contrôles sont
> normales (donc le décalage ne vient pas de là).
>
>
> Voici le code:
>
> 'btnPdt est le bouton qui permet de rajouter un produit
>
>
> Private Sub BtnPdt_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles BtnPdt.Click
>
> ' acquisition du nb de pdts ds cette catégorie, pour pv rajouter le pdt au
> bon 'endroit
> Dim NbPdt1 As Integer
> NbPdt1 = TAQueries.NbPdt(CbxSup.Text, lsbCat.SelectedItem)
>
> 'acquisition de: PdtPar (nom du nvo pdt), CatCNbPar (numéro de la
> colonne du nvo 'pdt) et de PdtNbPar (rien de nvo, c'est juste un
> changement
> de nom de variable)
> Dim pdtPar = InputBox("Entrez le nom du produit", "COURSES")
> Dim CatCNbPar As Integer = lsbCat.SelectedIndex + 1
> ' on avait PdtNbPar commence par 0
> Dim PdtNbPar As Integer = NbPdt1
>
> 'rajout des contrôles ds le panel
> Dim FonteFam1 As New FontFamily("Georgia")
> Dim Police1 As New Font(FonteFam1, 10, FontStyle.Regular,
> GraphicsUnit.Pixel)
>
> 'checkBox
> Dim myChkBox As New CheckBox()
> With myChkBox
> 'Pour le nom, on commence par Ckb 1.1
> .Name = "Ckb " & CType(CatCNbPar, String) & "." &
> CType(PdtNbPar
> + 1, String)
> .Text = pdtPar
> Dim ckbVal As GraphicsUnit = GraphicsUnit.Pixel
> .Width = 75
> .BackColor = Color.OliveDrab
> .ForeColor = Color.Yellow
> .Left = 26 + 232 * (CatCNbPar - 1)
> 'PdtNbPar commence à 1
> .Top = 226 - 163 + 20 * PdtNbPar
> .Font = Police1
> '.Width = 160
> '.Height = 20
> End With
> 'en +, qd chkboxClickChanged, placer le curseur sur la lstBox
> associée
> AddHandler myChkBox.CheckedChanged, AddressOf GiveFocus
> pnlCatPdt.Controls.Add(myChkBox)
>
>
> Je ne sais pas du tout à quoi c'est dû, si vous avez une idée, elle est la
> bienvenue!
>





Avatar
X
Alors voir ta chaîne d'enregistrement, qu'il n'y ait pa d'ascii 32 ou 255
devant, par un
ma_chaine=TRIM(ma_chaine)

Sinon, les décalés, tu les passe au rayon X, il doit y avoir une raison,
genre:

dim a as integer
dim decale
for i = 1 to len(decale)
decale = TRIM(decale)
a = ASC(mid(decale, i, 1)
msgbox a
next i


------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"Olivier57b" a écrit dans le message
de news:
J'ai essayé de remplacer la police par du Courier New, mais ça n'a rien
changé. Je pense à une propriété du panel, mais je suis dans le flou...

Bien essayé!

"X" wrote:

Bonjour,

Peut être les polices, pour avoir la même proportion il faut une
police
à taille fixe (couRier new)???

J'ai fait une liste de course par drag and drop, si tu veux voir:

http://irolog.free.fr/irolog_vente/courses_v/index.htm


------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"Olivier57b" a écrit dans le
message
de news:
> Bonjour,
>
> Voici mon pb: je développe une programme de gestion des courses au
> supermarché; il affiche une liste de produits (classés par catégorie,
> par
> ex
> haricots dans légumes), et pour chaque produit il affiche: une checkBox
> (qui
> permet de sélectionner le produit, un bouton Imprimer permet une sortie
> papier des produits sélectionnés; la checkBox permet aussi d'afficher
> le
> nom
> du produit), deux listBox pour la quantité: si l'on veut 1 boîte de
> haricots,
> on choisit le nombre dans la première listBox et "Boîte" dans la
> deuxième
> listBox.
> Mais j'ai un pb d'affichage des contrôles de nouveaux produits, et ceci
> de
> temps en temps seulement.Les contrôles de ce produit sont à la bonne
> hauteur,
> mais sont décalés horizontalement, vers la droite; et si je crée deux
> nouveaux produits dans cette colonne, le deuxième peut être encore plus
> décalé que le premier, ou décalé autant que le premier. Après une série
> de
> trois produits décalés, il est arrivé que le quatrième soit bien placé.
> Je précise que les contrôles sont regroupés normalement (cad la
> checkBox
> est
> à côté des deux listBox), et que les propriété .left des contrôles sont
> normales (donc le décalage ne vient pas de là).
>
>
> Voici le code:
>
> 'btnPdt est le bouton qui permet de rajouter un produit
>
>
> Private Sub BtnPdt_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles BtnPdt.Click
>
> ' acquisition du nb de pdts ds cette catégorie, pour pv rajouter le pdt
> au
> bon 'endroit
> Dim NbPdt1 As Integer
> NbPdt1 = TAQueries.NbPdt(CbxSup.Text, lsbCat.SelectedItem)
>
> 'acquisition de: PdtPar (nom du nvo pdt), CatCNbPar (numéro de
> la
> colonne du nvo 'pdt) et de PdtNbPar (rien de nvo, c'est juste un
> changement
> de nom de variable)
> Dim pdtPar = InputBox("Entrez le nom du produit", "COURSES")
> Dim CatCNbPar As Integer = lsbCat.SelectedIndex + 1
> ' on avait PdtNbPar commence par 0
> Dim PdtNbPar As Integer = NbPdt1
>
> 'rajout des contrôles ds le panel
> Dim FonteFam1 As New FontFamily("Georgia")
> Dim Police1 As New Font(FonteFam1, 10, FontStyle.Regular,
> GraphicsUnit.Pixel)
>
> 'checkBox
> Dim myChkBox As New CheckBox()
> With myChkBox
> 'Pour le nom, on commence par Ckb 1.1
> .Name = "Ckb " & CType(CatCNbPar, String) & "." &
> CType(PdtNbPar
> + 1, String)
> .Text = pdtPar
> Dim ckbVal As GraphicsUnit = GraphicsUnit.Pixel
> .Width = 75
> .BackColor = Color.OliveDrab
> .ForeColor = Color.Yellow
> .Left = 26 + 232 * (CatCNbPar - 1)
> 'PdtNbPar commence à 1
> .Top = 226 - 163 + 20 * PdtNbPar
> .Font = Police1
> '.Width = 160
> '.Height = 20
> End With
> 'en +, qd chkboxClickChanged, placer le curseur sur la lstBox
> associée
> AddHandler myChkBox.CheckedChanged, AddressOf GiveFocus
> pnlCatPdt.Controls.Add(myChkBox)
>
>
> Je ne sais pas du tout à quoi c'est dû, si vous avez une idée, elle est
> la
> bienvenue!
>







Avatar
Fred
Dans : news:,
Olivier57b disait :
Bonjour,



Bonjour,

Vas voir sur les groupes :
microsoft.public.fr.dotnet
microsoft.public.fr.dotnet.vb

Les contrôles du framework offrent beaucoup plus de possibilités que
ceux du vb6. C'est donc là-bas que tu auras les réponses les plus
adaptées.
Sans compter que les techniques de programmation sont tout de même très
différentes.

--
Fred
http://www.cerbermail.com/?3kA6ftaCvT