garfieldfido
Messages postés2Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention23 mai 2006
-
23 mai 2006 à 11:05
garfieldfido
Messages postés2Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention23 mai 2006
-
23 mai 2006 à 21:06
Bonjour,
j'ai un petit problème avec un controle picturebox?
- j'arrive tres bien afficher le codebarre dans mon piturebox. mais en faite
effacer à moitier par mon inputbox pour demander le code à afficher.
je peu déplacer la fenêtre de mon inputbox mais bon c'est pas terrible.
quelqu'un a une solution ?
voici mon code
je débute en VB NET 2005
Cordialement,
Ludovic Mary
Private Sub PictureBox1_DoubleClick(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles PictureBox1.DoubleClick
Dim CodeBarre As String
Dim MaskBinaire As String
'il est la le méchant !!
CodeBarre = InputBox("Entrer le codebarre :", "CodeBarre")
Public Sub CodeBarre_Pict(ByRef MaskCodeBarre As String, ByRef PictureBox1
As PictureBox, ByRef nHauteur As Integer, ByRef nHautDec As Integer, ByRef
EpaisseurTrait As Short, ByRef CalibrageTrait As Short, ByRef Col As
Integer, ByRef Lig As Integer)
'// Col,Lig = Position dans la Picturebox
'// nHauteur = Hauteur du code barre
'// nHautDec = Hauteur supplémentaires des traits de
séparation
'// MaskCodeBarre = Profil binaire sous forme de "0" et "1" à
imprimer
Dim NumCar As Integer ' Position dans le mask "binaire
Dim NbTrait As Integer ' Nb de lignes à tracer
'Dim Epaisseur1Trait As Double ' Epaisseur d'un trait
Dim i As Short ' Indice de boucle
Dim X As Single
' Abscisse de la ligne à tracer dans la PictureBox
Dim nLen As Integer ' Taille du mask "binaire"
Dim blackPen As New Pen(Color.Black, 2)
Dim oGraphics As System.Drawing.Graphics =
PictureBox1.CreateGraphics()
' Nombre de caractères à analyser
nLen = Len(MaskCodeBarre)
' Calcul de l'épaisseur d'un trait suivant la largeur demandée et le
nombre de traits
' On comptabilise les caractères "+" et "-" même s'ils ne sont pas
imprimés (négligeable)
'décalage par rapport à l'impression ? a voir
'Col = Col + 100
X = Col + EpaisseurTrait '* 7 ' Décalage vers la gauche pour le
chiffre affiché dessous
'décalage par rapport à l'impression ? a voir
'Lig = Lig + 300
NumCar = 1
oGraphics.Clear(Color.White)
'Generation des lignes
Do While NumCar <= nLen
Select Case Mid(MaskCodeBarre, NumCar, 1)
Case "-" ' Indicateur de diminution de hauteur de barre...
nHauteur = nHauteur - nHautDec
NumCar = NumCar + 1
Case "+" ' Indicateur d'augmentation de hauteur de barre...
nHauteur = nHauteur + nHautDec
NumCar = NumCar + 1
Case "0" ' Espace
X = X + EpaisseurTrait
NumCar = NumCar + 1
Case "1" ' Barre
'Regroupe tous les '1' successif du mask "binaire" pour
gagner du temps
NbTrait = 0
Do While Mid(MaskCodeBarre, NumCar, 1) = "1"
NbTrait = NbTrait + 1
NumCar = NumCar + 1
Loop
For i = 1 To NbTrait
oGraphics.DrawLine(blackPen, New Point(X, Lig), New
Point(X, Lig + nHauteur))
X = X + EpaisseurTrait
Next i
End Select
Loop
oGraphics.DrawString("test", New Font("Courrier", 8,
FontStyle.Bold), Brushes.Black, 10, 95)
oGraphics.Dispose()
'oGraphics = Nothing
Exit Sub
End Sub
cs_lolowilou69
Messages postés23Date d'inscriptionmardi 28 février 2006StatutMembreDernière intervention22 janvier 2007 23 mai 2006 à 12:05
Je pense que le probleme est du au fait que tu na pas mis ta picturebox en mode autoredraw.
Vas dans les propriétés de ta picturebox et met autoredraw = true. Je ne vois que cela. Sinon si ce n'est pas ça c'est que ça dépasse mé compétence.lol