Bonjour,

je me suis renseigné afin de pouvoir redéfinir ces deux fonctions dans mon programme vb.net.

quand je fait appel à :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Me.Width = Compatibility.VB6.TwipsToPixelsX(Compatibility.VB6.PixelsToTwipsX(FrmName.Width) + 340)
je n'ai pas la même valeur que lorsque je fait appel à ma fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
TwipsToPixelsX(TwipsToPixels(frmName.width)+340)
. La même chose se produitavec TwipsToPixelsY.

dans le premier cas j'ai la valeur 363 et dans le cas avec ma fonction, j'ai la valeur 24

voici mes deux fonctions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
Private Function TwipsToPixelsY(ByVal twips As Double) As Double
        Dim twips_per_inch As Double = 1440.0F
        Dim graph As Graphics = Me.CreateGraphics
        Dim dpiy As Short = graph.DpiY
 
        graph.Dispose()
 
        Return (twips * dpiy) / twips_per_inch
    End Function
 
    Private Function TwipsToPixelsX(ByVal twips As Double) As Double
        Dim twips_per_inch As Double = 1440.0F
        Dim graph As Graphics = Me.CreateGraphics
        Dim dpix As Short = graph.DpiX
 
        graph.Dispose()
 
        Return (twips * dpix) / twips_per_inch
    End Function
par contre si je fait :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
dim i as integer = TwipsToPixelsX(120)
j'ai la même valeur qu'en faisant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
dim j as integer = Compatibility.VB6.TwipsToPixelsX(120)
c'est à dire 8.

Du coup je ne voit pas vraiment d'où peut provenir le problème ?