Le but de cette fonction est de connaître la longueur en pixel d'1 texte.
Voici le Code qui fonctionne normalement sous Access :
'Déclaration pour la fonction LargeurTexte
Public Type Size
cx As Long
cy As Long
End Type
Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function ReleaseDC Lib "user32" _
(ByVal hwnd As Long, ByVal hDC As Long) As Long
Public Declare Function CreateFontA Lib "gdi32" _
(ByVal H As Long, ByVal W As Long, ByVal E As Long, _
ByVal O As Long, ByVal W As Long, ByVal i As Long, _
ByVal u As Long, ByVal S As Long, ByVal C As Long, _
ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, _
ByVal PAF As Long, ByVal F As String) As Long
Public Declare Function SelectObject Lib "gdi32" _
(ByVal hDC As Long, ByVal hObject As Long) As Long
Public Declare Function DeleteObject Lib "gdi32" _
(ByVal hObject As Long) As Long
Public Declare Function GetTextExtentPoint32A Lib "gdi32" _
(ByVal hDC As Long, ByVal lpsz As String, _
ByVal cbString As Long, lpSize As Size) As Long
Public Declare Function GetDeviceCaps Lib "gdi32" _
(ByVal hDC As Long, ByVal nIndex As Long) As Long
Public Function LargeurTexte(Texte As String, Police As String, _
Taille As Double, Optional Gras As Boolean, Optional Italique As Boolean)
Dim hFont As Long
Dim hDC As Long
Dim TSize As Size
Dim PixpInch As Double
hDC = GetDC(0)
PixpInch = GetDeviceCaps(hDC, 90) / 72
hFont = CreateFontA(-Taille * PixpInch, 0, 0, 0, _
400 + 300 * Gras, Italique, 0, 0, 1, 0, 0, 0, 0, Police)
If hFont = 0 Then LargeurTexte = 0: Exit Function
SelectObject hDC, hFont
GetTextExtentPoint32A hDC, Texte, Len(Texte), TSize
DeleteObject hFont
ReleaseDC 0, hDC
LargeurTexte = TSize.cx
End Function
Par simple copier / coller dans VB .Net, j'ai juste à remplacer le bloc
Type / End Type par ce bloc :
Public Structure Size
Public cx As Long
Public cy As Long
End Structure
et à corriger le titre de la fonction ainsi :
Public Function LargeurTexte(ByVal Texte As String, _
Optional ByVal Police As String = "Arial", _
Optional ByVal Taille As Double = 10, _
Optional ByVal Gras As Boolean = False, _
Optional ByVal Italique As Boolean = False)
Hélas, 1 erreur se produit sur la ligne :
GetTextExtentPoint32A(hDC, Texte, Len(Texte), TSize)
Pourtant les lignes précédentes fonctionnent normalement.
Je continue de chercher de mon côté.
Si 1 personne comprend où se situe le pb, merci de me faire part de sa
solution :)
Stéphane
Le but de cette fonction est de connaître la longueur en pixel d'1 texte.
Voici le Code qui fonctionne normalement sous Access :
'Déclaration pour la fonction LargeurTexte
Public Type Size
cx As Long
cy As Long
End Type
Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function ReleaseDC Lib "user32" _
(ByVal hwnd As Long, ByVal hDC As Long) As Long
Public Declare Function CreateFontA Lib "gdi32" _
(ByVal H As Long, ByVal W As Long, ByVal E As Long, _
ByVal O As Long, ByVal W As Long, ByVal i As Long, _
ByVal u As Long, ByVal S As Long, ByVal C As Long, _
ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, _
ByVal PAF As Long, ByVal F As String) As Long
Public Declare Function SelectObject Lib "gdi32" _
(ByVal hDC As Long, ByVal hObject As Long) As Long
Public Declare Function DeleteObject Lib "gdi32" _
(ByVal hObject As Long) As Long
Public Declare Function GetTextExtentPoint32A Lib "gdi32" _
(ByVal hDC As Long, ByVal lpsz As String, _
ByVal cbString As Long, lpSize As Size) As Long
Public Declare Function GetDeviceCaps Lib "gdi32" _
(ByVal hDC As Long, ByVal nIndex As Long) As Long
Public Function LargeurTexte(Texte As String, Police As String, _
Taille As Double, Optional Gras As Boolean, Optional Italique As Boolean)
Dim hFont As Long
Dim hDC As Long
Dim TSize As Size
Dim PixpInch As Double
hDC = GetDC(0)
PixpInch = GetDeviceCaps(hDC, 90) / 72
hFont = CreateFontA(-Taille * PixpInch, 0, 0, 0, _
400 + 300 * Gras, Italique, 0, 0, 1, 0, 0, 0, 0, Police)
If hFont = 0 Then LargeurTexte = 0: Exit Function
SelectObject hDC, hFont
GetTextExtentPoint32A hDC, Texte, Len(Texte), TSize
DeleteObject hFont
ReleaseDC 0, hDC
LargeurTexte = TSize.cx
End Function
Par simple copier / coller dans VB .Net, j'ai juste à remplacer le bloc
Type / End Type par ce bloc :
Public Structure Size
Public cx As Long
Public cy As Long
End Structure
et à corriger le titre de la fonction ainsi :
Public Function LargeurTexte(ByVal Texte As String, _
Optional ByVal Police As String = "Arial", _
Optional ByVal Taille As Double = 10, _
Optional ByVal Gras As Boolean = False, _
Optional ByVal Italique As Boolean = False)
Hélas, 1 erreur se produit sur la ligne :
GetTextExtentPoint32A(hDC, Texte, Len(Texte), TSize)
Pourtant les lignes précédentes fonctionnent normalement.
Je continue de chercher de mon côté.
Si 1 personne comprend où se situe le pb, merci de me faire part de sa
solution :)
Stéphane
Le but de cette fonction est de connaître la longueur en pixel d'1 texte.
Voici le Code qui fonctionne normalement sous Access :
'Déclaration pour la fonction LargeurTexte
Public Type Size
cx As Long
cy As Long
End Type
Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function ReleaseDC Lib "user32" _
(ByVal hwnd As Long, ByVal hDC As Long) As Long
Public Declare Function CreateFontA Lib "gdi32" _
(ByVal H As Long, ByVal W As Long, ByVal E As Long, _
ByVal O As Long, ByVal W As Long, ByVal i As Long, _
ByVal u As Long, ByVal S As Long, ByVal C As Long, _
ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, _
ByVal PAF As Long, ByVal F As String) As Long
Public Declare Function SelectObject Lib "gdi32" _
(ByVal hDC As Long, ByVal hObject As Long) As Long
Public Declare Function DeleteObject Lib "gdi32" _
(ByVal hObject As Long) As Long
Public Declare Function GetTextExtentPoint32A Lib "gdi32" _
(ByVal hDC As Long, ByVal lpsz As String, _
ByVal cbString As Long, lpSize As Size) As Long
Public Declare Function GetDeviceCaps Lib "gdi32" _
(ByVal hDC As Long, ByVal nIndex As Long) As Long
Public Function LargeurTexte(Texte As String, Police As String, _
Taille As Double, Optional Gras As Boolean, Optional Italique As Boolean)
Dim hFont As Long
Dim hDC As Long
Dim TSize As Size
Dim PixpInch As Double
hDC = GetDC(0)
PixpInch = GetDeviceCaps(hDC, 90) / 72
hFont = CreateFontA(-Taille * PixpInch, 0, 0, 0, _
400 + 300 * Gras, Italique, 0, 0, 1, 0, 0, 0, 0, Police)
If hFont = 0 Then LargeurTexte = 0: Exit Function
SelectObject hDC, hFont
GetTextExtentPoint32A hDC, Texte, Len(Texte), TSize
DeleteObject hFont
ReleaseDC 0, hDC
LargeurTexte = TSize.cx
End Function
Par simple copier / coller dans VB .Net, j'ai juste à remplacer le bloc
Type / End Type par ce bloc :
Public Structure Size
Public cx As Long
Public cy As Long
End Structure
et à corriger le titre de la fonction ainsi :
Public Function LargeurTexte(ByVal Texte As String, _
Optional ByVal Police As String = "Arial", _
Optional ByVal Taille As Double = 10, _
Optional ByVal Gras As Boolean = False, _
Optional ByVal Italique As Boolean = False)
Hélas, 1 erreur se produit sur la ligne :
GetTextExtentPoint32A(hDC, Texte, Len(Texte), TSize)
Pourtant les lignes précédentes fonctionnent normalement.
Je continue de chercher de mon côté.
Si 1 personne comprend où se situe le pb, merci de me faire part de sa
solution :)
Stéphane
Voici le Code qui fonctionne normalement sous Access :
'Déclaration pour la fonction LargeurTexte
Public Type Size
cx As Long
cy As Long
End Type
Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function ReleaseDC Lib "user32" _
(ByVal hwnd As Long, ByVal hDC As Long) As Long
Public Declare Function CreateFontA Lib "gdi32" _
(ByVal H As Long, ByVal W As Long, ByVal E As Long, _
ByVal O As Long, ByVal W As Long, ByVal i As Long, _
ByVal u As Long, ByVal S As Long, ByVal C As Long, _
ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, _
ByVal PAF As Long, ByVal F As String) As Long
Public Declare Function SelectObject Lib "gdi32" _
(ByVal hDC As Long, ByVal hObject As Long) As Long
Public Declare Function DeleteObject Lib "gdi32" _
(ByVal hObject As Long) As Long
Public Declare Function GetTextExtentPoint32A Lib "gdi32" _
(ByVal hDC As Long, ByVal lpsz As String, _
ByVal cbString As Long, lpSize As Size) As Long
Public Declare Function GetDeviceCaps Lib "gdi32" _
(ByVal hDC As Long, ByVal nIndex As Long) As Long
Public Function LargeurTexte(Texte As String, Police As String, _
Taille As Double, Optional Gras As Boolean, Optional Italique As
Dim hFont As Long
Dim hDC As Long
Dim TSize As Size
Dim PixpInch As Double
hDC = GetDC(0)
PixpInch = GetDeviceCaps(hDC, 90) / 72
hFont = CreateFontA(-Taille * PixpInch, 0, 0, 0, _
400 + 300 * Gras, Italique, 0, 0, 1, 0, 0, 0, 0, Police)
If hFont = 0 Then LargeurTexte = 0: Exit Function
SelectObject hDC, hFont
GetTextExtentPoint32A hDC, Texte, Len(Texte), TSize
DeleteObject hFont
ReleaseDC 0, hDC
LargeurTexte = TSize.cx
End Function
Par simple copier / coller dans VB .Net, j'ai juste à remplacer le bloc
/ End Type par ce bloc :
Public Structure Size
Public cx As Long
Public cy As Long
End Structure
et à corriger le titre de la fonction ainsi :
Public Function LargeurTexte(ByVal Texte As String, _
Optional ByVal Police As String = "Arial", _
Optional ByVal Taille As Double = 10, _
Optional ByVal Gras As Boolean = False, _
Optional ByVal Italique As Boolean = False)
Hélas, 1 erreur se produit sur la ligne :
GetTextExtentPoint32A(hDC, Texte, Len(Texte), TSize)
Pourtant les lignes précédentes fonctionnent normalement.
Je continue de chercher de mon côté.
Si 1 personne comprend où se situe le pb, merci de me faire part de sa
solution :)
Stéphane
Voici le Code qui fonctionne normalement sous Access :
'Déclaration pour la fonction LargeurTexte
Public Type Size
cx As Long
cy As Long
End Type
Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function ReleaseDC Lib "user32" _
(ByVal hwnd As Long, ByVal hDC As Long) As Long
Public Declare Function CreateFontA Lib "gdi32" _
(ByVal H As Long, ByVal W As Long, ByVal E As Long, _
ByVal O As Long, ByVal W As Long, ByVal i As Long, _
ByVal u As Long, ByVal S As Long, ByVal C As Long, _
ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, _
ByVal PAF As Long, ByVal F As String) As Long
Public Declare Function SelectObject Lib "gdi32" _
(ByVal hDC As Long, ByVal hObject As Long) As Long
Public Declare Function DeleteObject Lib "gdi32" _
(ByVal hObject As Long) As Long
Public Declare Function GetTextExtentPoint32A Lib "gdi32" _
(ByVal hDC As Long, ByVal lpsz As String, _
ByVal cbString As Long, lpSize As Size) As Long
Public Declare Function GetDeviceCaps Lib "gdi32" _
(ByVal hDC As Long, ByVal nIndex As Long) As Long
Public Function LargeurTexte(Texte As String, Police As String, _
Taille As Double, Optional Gras As Boolean, Optional Italique As
Dim hFont As Long
Dim hDC As Long
Dim TSize As Size
Dim PixpInch As Double
hDC = GetDC(0)
PixpInch = GetDeviceCaps(hDC, 90) / 72
hFont = CreateFontA(-Taille * PixpInch, 0, 0, 0, _
400 + 300 * Gras, Italique, 0, 0, 1, 0, 0, 0, 0, Police)
If hFont = 0 Then LargeurTexte = 0: Exit Function
SelectObject hDC, hFont
GetTextExtentPoint32A hDC, Texte, Len(Texte), TSize
DeleteObject hFont
ReleaseDC 0, hDC
LargeurTexte = TSize.cx
End Function
Par simple copier / coller dans VB .Net, j'ai juste à remplacer le bloc
/ End Type par ce bloc :
Public Structure Size
Public cx As Long
Public cy As Long
End Structure
et à corriger le titre de la fonction ainsi :
Public Function LargeurTexte(ByVal Texte As String, _
Optional ByVal Police As String = "Arial", _
Optional ByVal Taille As Double = 10, _
Optional ByVal Gras As Boolean = False, _
Optional ByVal Italique As Boolean = False)
Hélas, 1 erreur se produit sur la ligne :
GetTextExtentPoint32A(hDC, Texte, Len(Texte), TSize)
Pourtant les lignes précédentes fonctionnent normalement.
Je continue de chercher de mon côté.
Si 1 personne comprend où se situe le pb, merci de me faire part de sa
solution :)
Stéphane
Voici le Code qui fonctionne normalement sous Access :
'Déclaration pour la fonction LargeurTexte
Public Type Size
cx As Long
cy As Long
End Type
Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function ReleaseDC Lib "user32" _
(ByVal hwnd As Long, ByVal hDC As Long) As Long
Public Declare Function CreateFontA Lib "gdi32" _
(ByVal H As Long, ByVal W As Long, ByVal E As Long, _
ByVal O As Long, ByVal W As Long, ByVal i As Long, _
ByVal u As Long, ByVal S As Long, ByVal C As Long, _
ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, _
ByVal PAF As Long, ByVal F As String) As Long
Public Declare Function SelectObject Lib "gdi32" _
(ByVal hDC As Long, ByVal hObject As Long) As Long
Public Declare Function DeleteObject Lib "gdi32" _
(ByVal hObject As Long) As Long
Public Declare Function GetTextExtentPoint32A Lib "gdi32" _
(ByVal hDC As Long, ByVal lpsz As String, _
ByVal cbString As Long, lpSize As Size) As Long
Public Declare Function GetDeviceCaps Lib "gdi32" _
(ByVal hDC As Long, ByVal nIndex As Long) As Long
Public Function LargeurTexte(Texte As String, Police As String, _
Taille As Double, Optional Gras As Boolean, Optional Italique As
Dim hFont As Long
Dim hDC As Long
Dim TSize As Size
Dim PixpInch As Double
hDC = GetDC(0)
PixpInch = GetDeviceCaps(hDC, 90) / 72
hFont = CreateFontA(-Taille * PixpInch, 0, 0, 0, _
400 + 300 * Gras, Italique, 0, 0, 1, 0, 0, 0, 0, Police)
If hFont = 0 Then LargeurTexte = 0: Exit Function
SelectObject hDC, hFont
GetTextExtentPoint32A hDC, Texte, Len(Texte), TSize
DeleteObject hFont
ReleaseDC 0, hDC
LargeurTexte = TSize.cx
End Function
Par simple copier / coller dans VB .Net, j'ai juste à remplacer le bloc
/ End Type par ce bloc :
Public Structure Size
Public cx As Long
Public cy As Long
End Structure
et à corriger le titre de la fonction ainsi :
Public Function LargeurTexte(ByVal Texte As String, _
Optional ByVal Police As String = "Arial", _
Optional ByVal Taille As Double = 10, _
Optional ByVal Gras As Boolean = False, _
Optional ByVal Italique As Boolean = False)
Hélas, 1 erreur se produit sur la ligne :
GetTextExtentPoint32A(hDC, Texte, Len(Texte), TSize)
Pourtant les lignes précédentes fonctionnent normalement.
Je continue de chercher de mon côté.
Si 1 personne comprend où se situe le pb, merci de me faire part de sa
solution :)
Stéphane
> Apparement, c'est directement la méthode Graphics.MeasureStringqui
répondrait à mon besoin.
> Apparement, c'est directement la méthode Graphics.MeasureStringqui
répondrait à mon besoin.
> Apparement, c'est directement la méthode Graphics.MeasureStringqui
répondrait à mon besoin.
Apparement, c'est directement la méthode Graphics.MeasureStringqui
répondrait à mon besoin.
J'ai lu quelque part que Graphics.MeasureString() ne renvoyait pas la
taille
du texte de manière précise, mais plutôt un Type SizeF qui correspondrait
à
la taille minimum exigé pour permettre l'affichage complet de ce texte.
Que cherche tu à faire exactement ?
--
Cordialement
Yanick
MVP pour Visual Basic
Apparement, c'est directement la méthode Graphics.MeasureStringqui
répondrait à mon besoin.
J'ai lu quelque part que Graphics.MeasureString() ne renvoyait pas la
taille
du texte de manière précise, mais plutôt un Type SizeF qui correspondrait
à
la taille minimum exigé pour permettre l'affichage complet de ce texte.
Que cherche tu à faire exactement ?
--
Cordialement
Yanick
MVP pour Visual Basic
Apparement, c'est directement la méthode Graphics.MeasureStringqui
répondrait à mon besoin.
J'ai lu quelque part que Graphics.MeasureString() ne renvoyait pas la
taille
du texte de manière précise, mais plutôt un Type SizeF qui correspondrait
à
la taille minimum exigé pour permettre l'affichage complet de ce texte.
Que cherche tu à faire exactement ?
--
Cordialement
Yanick
MVP pour Visual Basic
Tout à fait Yanick, c'est exactement çà que je cherche :
la taille minimum exigée pour permettre l'affichage complet d'un texte.
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:
>> Apparement, c'est directement la méthode Graphics.MeasureStringqui
>> répondrait à mon besoin.
>
> J'ai lu quelque part que Graphics.MeasureString() ne renvoyait pas la
> taille
> du texte de manière précise, mais plutôt un Type SizeF qui
> à
> la taille minimum exigé pour permettre l'affichage complet de ce texte.
>
> Que cherche tu à faire exactement ?
>
> --
> Cordialement
> Yanick
> MVP pour Visual Basic
>
>
Tout à fait Yanick, c'est exactement çà que je cherche :
la taille minimum exigée pour permettre l'affichage complet d'un texte.
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news: e5gPA819EHA.2876@TK2MSFTNGP12.phx.gbl...
>> Apparement, c'est directement la méthode Graphics.MeasureStringqui
>> répondrait à mon besoin.
>
> J'ai lu quelque part que Graphics.MeasureString() ne renvoyait pas la
> taille
> du texte de manière précise, mais plutôt un Type SizeF qui
> à
> la taille minimum exigé pour permettre l'affichage complet de ce texte.
>
> Que cherche tu à faire exactement ?
>
> --
> Cordialement
> Yanick
> MVP pour Visual Basic
>
>
Tout à fait Yanick, c'est exactement çà que je cherche :
la taille minimum exigée pour permettre l'affichage complet d'un texte.
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:
>> Apparement, c'est directement la méthode Graphics.MeasureStringqui
>> répondrait à mon besoin.
>
> J'ai lu quelque part que Graphics.MeasureString() ne renvoyait pas la
> taille
> du texte de manière précise, mais plutôt un Type SizeF qui
> à
> la taille minimum exigé pour permettre l'affichage complet de ce texte.
>
> Que cherche tu à faire exactement ?
>
> --
> Cordialement
> Yanick
> MVP pour Visual Basic
>
>
ah! bien dans ce cas... :O)
Voici un exemple qui redimensionne un Label en fonction de la longueur du
texte qu'il contient. Démarre toi une nouvelle Windows Application et
colle ce code dans le Form1 :
'***
Option Explicit On
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Code généré par le Concepteur Windows Form "
Public Sub New()
MyBase.New()
'Cet appel est requis par le Concepteur Windows Form.
InitializeComponent()
'Ajoutez une initialisation quelconque après l'appel
InitializeComponent()
End Sub
'La méthode substituée Dispose du formulaire pour nettoyer la liste des
composants.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Requis par le Concepteur Windows Form
Private components As System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par le Concepteur Windows
Form
'Elle peut être modifiée en utilisant le Concepteur Windows Form.
'Ne la modifiez pas en utilisant l'éditeur de code.
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
Friend WithEvents Label1 As System.Windows.Forms.Label
<System.Diagnostics.DebuggerStepThrough()> Private Sub
InitializeComponent()
Me.TextBox1 = New System.Windows.Forms.TextBox
Me.Label1 = New System.Windows.Forms.Label
Me.SuspendLayout()
'
'TextBox1
'
Me.TextBox1.Location = New System.Drawing.Point(8, 8)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.Size = New System.Drawing.Size(608, 20)
Me.TextBox1.TabIndex = 0
Me.TextBox1.Text = "TextBox1"
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(8, 32)
Me.Label1.Name = "Label1"
Me.Label1.TabIndex = 1
Me.Label1.Text = "Label1"
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(624, 266)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.TextBox1)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
TextBox1.Text = String.Empty
Label1.BackColor = Color.Azure
End Sub
Private Sub Label1_TextChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Label1.TextChanged
Label1.Size = Label1.CreateGraphics.MeasureString(Label1.Text,
Label1.Font).ToSize()
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TextBox1.TextChanged
Label1.Text = TextBox1.Text
End Sub
End Class
'***
--
Cordialement
Yanick
MVP pour Visual Basic
"Stéphane L." a écrit dans
le
message de news:%Tout à fait Yanick, c'est exactement çà que je cherche :
la taille minimum exigée pour permettre l'affichage complet d'un texte.
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:
>> Apparement, c'est directement la méthode Graphics.MeasureStringqui
>> répondrait à mon besoin.
>
> J'ai lu quelque part que Graphics.MeasureString() ne renvoyait pas la
> taille
> du texte de manière précise, mais plutôt un Type SizeF qui
correspondrait> à
> la taille minimum exigé pour permettre l'affichage complet de ce texte.
>
> Que cherche tu à faire exactement ?
>
> --
> Cordialement
> Yanick
> MVP pour Visual Basic
>
>
ah! bien dans ce cas... :O)
Voici un exemple qui redimensionne un Label en fonction de la longueur du
texte qu'il contient. Démarre toi une nouvelle Windows Application et
colle ce code dans le Form1 :
'***
Option Explicit On
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Code généré par le Concepteur Windows Form "
Public Sub New()
MyBase.New()
'Cet appel est requis par le Concepteur Windows Form.
InitializeComponent()
'Ajoutez une initialisation quelconque après l'appel
InitializeComponent()
End Sub
'La méthode substituée Dispose du formulaire pour nettoyer la liste des
composants.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Requis par le Concepteur Windows Form
Private components As System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par le Concepteur Windows
Form
'Elle peut être modifiée en utilisant le Concepteur Windows Form.
'Ne la modifiez pas en utilisant l'éditeur de code.
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
Friend WithEvents Label1 As System.Windows.Forms.Label
<System.Diagnostics.DebuggerStepThrough()> Private Sub
InitializeComponent()
Me.TextBox1 = New System.Windows.Forms.TextBox
Me.Label1 = New System.Windows.Forms.Label
Me.SuspendLayout()
'
'TextBox1
'
Me.TextBox1.Location = New System.Drawing.Point(8, 8)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.Size = New System.Drawing.Size(608, 20)
Me.TextBox1.TabIndex = 0
Me.TextBox1.Text = "TextBox1"
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(8, 32)
Me.Label1.Name = "Label1"
Me.Label1.TabIndex = 1
Me.Label1.Text = "Label1"
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(624, 266)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.TextBox1)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
TextBox1.Text = String.Empty
Label1.BackColor = Color.Azure
End Sub
Private Sub Label1_TextChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Label1.TextChanged
Label1.Size = Label1.CreateGraphics.MeasureString(Label1.Text,
Label1.Font).ToSize()
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TextBox1.TextChanged
Label1.Text = TextBox1.Text
End Sub
End Class
'***
--
Cordialement
Yanick
MVP pour Visual Basic
"Stéphane L." <sl.n..o...ave.s..p...rgne@p.a..m...ower-m.fr> a écrit dans
le
message de news:%23Ewocy79EHA.3700@tk2msftngp13.phx.gbl...
Tout à fait Yanick, c'est exactement çà que je cherche :
la taille minimum exigée pour permettre l'affichage complet d'un texte.
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news: e5gPA819EHA.2876@TK2MSFTNGP12.phx.gbl...
>> Apparement, c'est directement la méthode Graphics.MeasureStringqui
>> répondrait à mon besoin.
>
> J'ai lu quelque part que Graphics.MeasureString() ne renvoyait pas la
> taille
> du texte de manière précise, mais plutôt un Type SizeF qui
correspondrait
> à
> la taille minimum exigé pour permettre l'affichage complet de ce texte.
>
> Que cherche tu à faire exactement ?
>
> --
> Cordialement
> Yanick
> MVP pour Visual Basic
>
>
ah! bien dans ce cas... :O)
Voici un exemple qui redimensionne un Label en fonction de la longueur du
texte qu'il contient. Démarre toi une nouvelle Windows Application et
colle ce code dans le Form1 :
'***
Option Explicit On
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Code généré par le Concepteur Windows Form "
Public Sub New()
MyBase.New()
'Cet appel est requis par le Concepteur Windows Form.
InitializeComponent()
'Ajoutez une initialisation quelconque après l'appel
InitializeComponent()
End Sub
'La méthode substituée Dispose du formulaire pour nettoyer la liste des
composants.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Requis par le Concepteur Windows Form
Private components As System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par le Concepteur Windows
Form
'Elle peut être modifiée en utilisant le Concepteur Windows Form.
'Ne la modifiez pas en utilisant l'éditeur de code.
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
Friend WithEvents Label1 As System.Windows.Forms.Label
<System.Diagnostics.DebuggerStepThrough()> Private Sub
InitializeComponent()
Me.TextBox1 = New System.Windows.Forms.TextBox
Me.Label1 = New System.Windows.Forms.Label
Me.SuspendLayout()
'
'TextBox1
'
Me.TextBox1.Location = New System.Drawing.Point(8, 8)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.Size = New System.Drawing.Size(608, 20)
Me.TextBox1.TabIndex = 0
Me.TextBox1.Text = "TextBox1"
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(8, 32)
Me.Label1.Name = "Label1"
Me.Label1.TabIndex = 1
Me.Label1.Text = "Label1"
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(624, 266)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.TextBox1)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
TextBox1.Text = String.Empty
Label1.BackColor = Color.Azure
End Sub
Private Sub Label1_TextChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Label1.TextChanged
Label1.Size = Label1.CreateGraphics.MeasureString(Label1.Text,
Label1.Font).ToSize()
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TextBox1.TextChanged
Label1.Text = TextBox1.Text
End Sub
End Class
'***
--
Cordialement
Yanick
MVP pour Visual Basic
"Stéphane L." a écrit dans
le
message de news:%Tout à fait Yanick, c'est exactement çà que je cherche :
la taille minimum exigée pour permettre l'affichage complet d'un texte.
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:
>> Apparement, c'est directement la méthode Graphics.MeasureStringqui
>> répondrait à mon besoin.
>
> J'ai lu quelque part que Graphics.MeasureString() ne renvoyait pas la
> taille
> du texte de manière précise, mais plutôt un Type SizeF qui
correspondrait> à
> la taille minimum exigé pour permettre l'affichage complet de ce texte.
>
> Que cherche tu à faire exactement ?
>
> --
> Cordialement
> Yanick
> MVP pour Visual Basic
>
>
ah! bien dans ce cas... :O)
Voici un exemple qui redimensionne un Label en fonction de la longueur du
texte qu'il contient. Démarre toi une nouvelle Windows Application et
colle ce code dans le Form1 :
'***
Option Explicit On
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Code généré par le Concepteur Windows Form "
Public Sub New()
MyBase.New()
'Cet appel est requis par le Concepteur Windows Form.
InitializeComponent()
'Ajoutez une initialisation quelconque après l'appel
InitializeComponent()
End Sub
'La méthode substituée Dispose du formulaire pour nettoyer la liste des
composants.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Requis par le Concepteur Windows Form
Private components As System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par le Concepteur Windows
Form
'Elle peut être modifiée en utilisant le Concepteur Windows Form.
'Ne la modifiez pas en utilisant l'éditeur de code.
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
Friend WithEvents Label1 As System.Windows.Forms.Label
<System.Diagnostics.DebuggerStepThrough()> Private Sub
InitializeComponent()
Me.TextBox1 = New System.Windows.Forms.TextBox
Me.Label1 = New System.Windows.Forms.Label
Me.SuspendLayout()
'
'TextBox1
'
Me.TextBox1.Location = New System.Drawing.Point(8, 8)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.Size = New System.Drawing.Size(608, 20)
Me.TextBox1.TabIndex = 0
Me.TextBox1.Text = "TextBox1"
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(8, 32)
Me.Label1.Name = "Label1"
Me.Label1.TabIndex = 1
Me.Label1.Text = "Label1"
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(624, 266)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.TextBox1)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
TextBox1.Text = String.Empty
Label1.BackColor = Color.Azure
End Sub
Private Sub Label1_TextChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Label1.TextChanged
Label1.Size = Label1.CreateGraphics.MeasureString(Label1.Text,
Label1.Font).ToSize()
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TextBox1.TextChanged
Label1.Text = TextBox1.Text
End Sub
End Class
'***
--
Cordialement
Yanick
MVP pour Visual Basic
"Stéphane L." a écrit dans
le
message de news:%Tout à fait Yanick, c'est exactement çà que je cherche :
la taille minimum exigée pour permettre l'affichage complet d'un texte.
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:
>> Apparement, c'est directement la méthode Graphics.MeasureStringqui
>> répondrait à mon besoin.
>
> J'ai lu quelque part que Graphics.MeasureString() ne renvoyait pas la
> taille
> du texte de manière précise, mais plutôt un Type SizeF qui
correspondrait> à
> la taille minimum exigé pour permettre l'affichage complet de ce texte.
>
> Que cherche tu à faire exactement ?
>
> --
> Cordialement
> Yanick
> MVP pour Visual Basic
>
>
ah! bien dans ce cas... :O)
Voici un exemple qui redimensionne un Label en fonction de la longueur du
texte qu'il contient. Démarre toi une nouvelle Windows Application et
colle ce code dans le Form1 :
'***
Option Explicit On
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Code généré par le Concepteur Windows Form "
Public Sub New()
MyBase.New()
'Cet appel est requis par le Concepteur Windows Form.
InitializeComponent()
'Ajoutez une initialisation quelconque après l'appel
InitializeComponent()
End Sub
'La méthode substituée Dispose du formulaire pour nettoyer la liste des
composants.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Requis par le Concepteur Windows Form
Private components As System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par le Concepteur Windows
Form
'Elle peut être modifiée en utilisant le Concepteur Windows Form.
'Ne la modifiez pas en utilisant l'éditeur de code.
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
Friend WithEvents Label1 As System.Windows.Forms.Label
<System.Diagnostics.DebuggerStepThrough()> Private Sub
InitializeComponent()
Me.TextBox1 = New System.Windows.Forms.TextBox
Me.Label1 = New System.Windows.Forms.Label
Me.SuspendLayout()
'
'TextBox1
'
Me.TextBox1.Location = New System.Drawing.Point(8, 8)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.Size = New System.Drawing.Size(608, 20)
Me.TextBox1.TabIndex = 0
Me.TextBox1.Text = "TextBox1"
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(8, 32)
Me.Label1.Name = "Label1"
Me.Label1.TabIndex = 1
Me.Label1.Text = "Label1"
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(624, 266)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.TextBox1)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
TextBox1.Text = String.Empty
Label1.BackColor = Color.Azure
End Sub
Private Sub Label1_TextChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Label1.TextChanged
Label1.Size = Label1.CreateGraphics.MeasureString(Label1.Text,
Label1.Font).ToSize()
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TextBox1.TextChanged
Label1.Text = TextBox1.Text
End Sub
End Class
'***
--
Cordialement
Yanick
MVP pour Visual Basic
"Stéphane L." <sl.n..o...ave.s..p...rgne@p.a..m...ower-m.fr> a écrit dans
le
message de news:%23Ewocy79EHA.3700@tk2msftngp13.phx.gbl...
Tout à fait Yanick, c'est exactement çà que je cherche :
la taille minimum exigée pour permettre l'affichage complet d'un texte.
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news: e5gPA819EHA.2876@TK2MSFTNGP12.phx.gbl...
>> Apparement, c'est directement la méthode Graphics.MeasureStringqui
>> répondrait à mon besoin.
>
> J'ai lu quelque part que Graphics.MeasureString() ne renvoyait pas la
> taille
> du texte de manière précise, mais plutôt un Type SizeF qui
correspondrait
> à
> la taille minimum exigé pour permettre l'affichage complet de ce texte.
>
> Que cherche tu à faire exactement ?
>
> --
> Cordialement
> Yanick
> MVP pour Visual Basic
>
>
ah! bien dans ce cas... :O)
Voici un exemple qui redimensionne un Label en fonction de la longueur du
texte qu'il contient. Démarre toi une nouvelle Windows Application et
colle ce code dans le Form1 :
'***
Option Explicit On
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Code généré par le Concepteur Windows Form "
Public Sub New()
MyBase.New()
'Cet appel est requis par le Concepteur Windows Form.
InitializeComponent()
'Ajoutez une initialisation quelconque après l'appel
InitializeComponent()
End Sub
'La méthode substituée Dispose du formulaire pour nettoyer la liste des
composants.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Requis par le Concepteur Windows Form
Private components As System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par le Concepteur Windows
Form
'Elle peut être modifiée en utilisant le Concepteur Windows Form.
'Ne la modifiez pas en utilisant l'éditeur de code.
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
Friend WithEvents Label1 As System.Windows.Forms.Label
<System.Diagnostics.DebuggerStepThrough()> Private Sub
InitializeComponent()
Me.TextBox1 = New System.Windows.Forms.TextBox
Me.Label1 = New System.Windows.Forms.Label
Me.SuspendLayout()
'
'TextBox1
'
Me.TextBox1.Location = New System.Drawing.Point(8, 8)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.Size = New System.Drawing.Size(608, 20)
Me.TextBox1.TabIndex = 0
Me.TextBox1.Text = "TextBox1"
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(8, 32)
Me.Label1.Name = "Label1"
Me.Label1.TabIndex = 1
Me.Label1.Text = "Label1"
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(624, 266)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.TextBox1)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
TextBox1.Text = String.Empty
Label1.BackColor = Color.Azure
End Sub
Private Sub Label1_TextChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Label1.TextChanged
Label1.Size = Label1.CreateGraphics.MeasureString(Label1.Text,
Label1.Font).ToSize()
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TextBox1.TextChanged
Label1.Text = TextBox1.Text
End Sub
End Class
'***
--
Cordialement
Yanick
MVP pour Visual Basic
"Stéphane L." a écrit dans
le
message de news:%Tout à fait Yanick, c'est exactement çà que je cherche :
la taille minimum exigée pour permettre l'affichage complet d'un texte.
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:
>> Apparement, c'est directement la méthode Graphics.MeasureStringqui
>> répondrait à mon besoin.
>
> J'ai lu quelque part que Graphics.MeasureString() ne renvoyait pas la
> taille
> du texte de manière précise, mais plutôt un Type SizeF qui
correspondrait> à
> la taille minimum exigé pour permettre l'affichage complet de ce texte.
>
> Que cherche tu à faire exactement ?
>
> --
> Cordialement
> Yanick
> MVP pour Visual Basic
>
>