Déplacer un focus après un Print()

jytest Messages postés 315 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014 - Modifié par jytest le 23/12/2014 à 08:16
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 23 déc. 2014 à 13:07
Bonjour,

Pouvez-vous prendre un peu de votre temps pour m'aider ?

Je souhaiterais renvoyer le focus à "txtDateNaissance00",
mais suite à ce print, le contrôle ne lui est pas donné.
Pour être franc, je ne sais même pas où le focus va...

Pouvez-vous m'aider à résoudre ce souci très ennuyant ?
Google ne m'a pas été de grand secours pour ce truc...
D'avance, un grand merci.

Voici le code dans une cmdValiderVente.click() :
If pcbPrintON.Visible = True Then
    PrintTransactionVente.Print()
    txtDateNaissance00.Focus()
End If

et voici :
    Private Sub PrintTransactionVente_PrintPage(sender As Object, e As PrintPageEventArgs) Handles PrintBonFidelite.PrintPage
        Dim logo01 As Image, logo02 As Image
        Dim x1 As Integer, y1 As Integer
        Dim fontCAP As PrivateFontCollection = New PrivateFontCollection
        fontCAP.AddFontFile(locfichier10 & "code128.ttf")
        Dim fontEAN As New Font(fontCAP.Families(0), 28, FontStyle.Regular)
        Dim font10 = New Font("Arial", 10)
        Dim font10bold = New Font("Arial", 10, FontStyle.Bold)
        Dim font08 = New Font("Arial", 8)
        Dim font1 As New Font("Arial", 10, FontStyle.Regular, GraphicsUnit.Point)
        Dim font2 As New Font("Arial", 20, FontStyle.Bold, GraphicsUnit.Point)
        Dim font3 As New Font("Arial", 55, FontStyle.Bold, GraphicsUnit.Point)
        Dim stringFormat As New StringFormat()
        logo01 = Image.FromFile(locfichier05 & "BAL_modif_L264px.png")
        logo02 = Image.FromFile(locfichier05 & "replay_modif_L264px.png")

        'Dim printer As String = "EPSON TM-T88IV ReceiptE4"
        'Dim net As Object
        'net = CreateObject("WScript.Network")
        'net.SetDefaultPrinter("EPSON TM-T88IV ReceiptE4")

        x1 = 0
        y1 = 0
        e.Graphics.DrawImage(logo01, x1 + ticketMargeG, y1, ticketLargeur, CInt(105 * ticketLargeur / 264))
        y1 = y1 + 104
        e.Graphics.DrawImage(logo02, x1 + ticketMargeG, y1, ticketLargeur, CInt(84 * ticketLargeur / 264))
        y1 = y1 + 85
        'ticketTexteG = licEnseigne & Chr(10) & licAdresse00 & Chr(10) & licLocalite & Chr(10) & licTel
        'e.Graphics.DrawString(ticketTexteG, font10, Brushes.Black, x1 + ticketMargeG, y1)
        ticketTexteC = licEnseigne & Chr(10) & licAdresse00 & Chr(10) & licLocalite & Chr(10) & licTel
        Dim rectLicence As New Rectangle(13, y1 + 2, 250, 64)
        stringFormat.Alignment = StringAlignment.Center
        stringFormat.LineAlignment = StringAlignment.Center
        e.Graphics.DrawString(ticketTexteC, font1, Brushes.Black, rectLicence, stringFormat)
        e.Graphics.DrawRectangle(Pens.White, rectLicence)
        y1 = y1 + 70

        ticketTexteG = "Caisse : " & licPoste
        e.Graphics.DrawString(ticketTexteG, font10, Brushes.Black, x1 + ticketMargeG, y1)
        y1 = y1 + 15
        ticketTexteG = "Date : " & ticketNewDate
        e.Graphics.DrawString(ticketTexteG, font10, Brushes.Black, x1 + ticketMargeG, y1)
        y1 = y1 + 35
        e.Graphics.DrawString(code128TableB(recordClient), fontEAN, Brushes.Black, x1, y1)
        y1 = y1 + 42
        ticketTexteG = Trim(txtNom.Text) & " " & Trim(txtPrenom.Text)
        e.Graphics.DrawString(ticketTexteG, font10, Brushes.Black, x1 + ticketMargeG, y1)

        y1 = y1 + 40
        ticketTexteC = "15.00"
        Dim rectFidelite01 As New Rectangle(13, y1 + 2, 250, 75)
        stringFormat.Alignment = StringAlignment.Center
        stringFormat.LineAlignment = StringAlignment.Center
        e.Graphics.DrawString(ticketTexteC, font3, Brushes.Black, rectFidelite01, stringFormat)
        e.Graphics.DrawRectangle(Pens.White, rectFidelite01)
        y1 = y1 + 63
        ticketTexteC = "euros de fidélité"
        Dim rectFidelite02 As New Rectangle(13, y1 + 2, 250, 30)
        stringFormat.Alignment = StringAlignment.Center
        stringFormat.LineAlignment = StringAlignment.Center
        e.Graphics.DrawString(ticketTexteC, font2, Brushes.Black, rectFidelite02, stringFormat)
        e.Graphics.DrawRectangle(Pens.White, rectFidelite02)

        y1 = y1 + 35
        e.Graphics.DrawString(code128TableB(ticketNumero), fontEAN, Brushes.Black, x1, y1)

        y1 = y1 + 40
        ticketTexteG = "Ce bon est nominatif et n'est pas cessible."
        e.Graphics.DrawString(ticketTexteG, font08, Brushes.Black, x1 + ticketMargeG, y1)

        y1 = y1 + 12
        ticketTexteG = "Valable jusqu'au : 31/12/2015"
        e.Graphics.DrawString(ticketTexteG, font08, Brushes.Black, x1 + ticketMargeG, y1)

        y1 = y1 + 50
        'ticketTexteG = "Nous vous remercions" & Chr(10) &
        '    "pour votre fidélité."
        'e.Graphics.DrawString(ticketTexteG, font10, Brushes.Black, x1 + ticketMargeG, y1)
        ticketTexteC = "Nous vous remercions" & Chr(10) &
            "pour votre fidélité."
        Dim rectRemerciement As New Rectangle(13, y1 + 2, 250, 35)
        stringFormat.Alignment = StringAlignment.Center
        stringFormat.LineAlignment = StringAlignment.Center
        e.Graphics.DrawString(ticketTexteC, font1, Brushes.Black, rectRemerciement, stringFormat)
        e.Graphics.DrawRectangle(Pens.White, rectRemerciement)
        y1 = y1 + 35
        ticketTexteG = "."
        e.Graphics.DrawString(ticketTexteG, font10, Brushes.Black, x1, y1)
    End Sub

2 réponses

Whismeril Messages postés 18607 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 23 septembre 2023 629
23 déc. 2014 à 12:26
Bonjour tu donnes tout plein de code mais je ne pense pas que ce soit ce qui est en cause.

As tu commencé par mettre un point d'arret sur la ligne
    txtDateNaissance00.Focus()
?
Regardé si ton textbox est visible, enabled, focussable?
Exécuté en mode pas à pas détaillé, pour voir ou le code va ensuite?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 212
23 déc. 2014 à 13:07
Bonjour,
La réponse de Whismeril est parfaitement justifiée, à divers titres.
Et on n'a jamais vu (ni ne verra jamais) un contrôle perdre le focus du seul fait d'une instruction d'impression ... sauf si, bien évidemment, le focus a été donné à un autre contrôle par une autre instruction. Et tu es alors bien le seul à savoir si tu as ou non donné ce focus à un autre contrôle.
0
Rejoignez-nous