Soyez le premier à donner votre avis sur cette source.
Snippet vu 7 217 fois - Téléchargée 21 fois
' post original by Zijian 'http://www.codeproject.com/KB/miscctrl/Parasite_Pattern2.aspx 'revision par gillardg 'traduction en vb.net et ajout d'une propriété image Public Class InTextboxLabel Protected box As TextBoxBase Protected hint As String Protected lab As Label ''' <summary> ''' usage : ''' dans l'évenement Load de la form ( MyBase.Load ) ''' Dim tex As New InTextboxLabel(tb1, "User Name", Image.FromFile("annsom.png")) ''' </summary> ''' <param name="box"></param> ''' <param name="hint"></param> ''' <param name="picture"></param> ''' <remarks></remarks> Public Sub New(ByVal box As TextBoxBase, ByVal hint As String, Optional ByVal picture As Image = Nothing) Me.box = box Me.hint = hint AddHandler box.Enter, AddressOf box_Enter AddHandler box.Leave, AddressOf box_Leave AddHandler box.TextChanged, AddressOf box_TextChanged lab = New Label() lab.Text = hint lab.Image = picture lab.ForeColor = SystemColors.ActiveBorder box.Controls.Add(lab) lab.Dock = DockStyle.Fill AddHandler lab.Click, AddressOf panel_Click If String.IsNullOrEmpty(box.Text) Then lab.Show() End If End Sub Private Sub box_TextChanged(ByVal sender As Object, ByVal e As EventArgs) If (Not String.IsNullOrEmpty(box.Text)) Then lab.Hide() ElseIf (Not box.Focused) Then lab.Show() End If End Sub Private Sub panel_Click(ByVal sender As Object, ByVal e As EventArgs) lab.Hide() box.Select() End Sub Private Sub box_Leave(ByVal sender As Object, ByVal e As EventArgs) If String.IsNullOrEmpty(box.Text) Then lab.Show() End If End Sub Private Sub box_Enter(ByVal sender As Object, ByVal e As EventArgs) lab.Hide() End Sub End Class
22 juin 2009 à 21:02
implémentation : comme un objet Textbox
<Li>
' post original by Zijian
'http://www.codeproject.com/KB/miscctrl/Parasite_Pattern2.aspx
'revision par gillardg
'traduction en vb.net et ajout d'une propriété image
Imports System.Windows.Forms
Public Class TextBox
Inherits System.Windows.Forms.TextBox
Protected lab As Label
''' <summary>
''' Nouveau Textbox
''' </summary>
''' <remarks></remarks>
Public Sub New()
lab = New Label()
lab.Text = hint
lab.ForeColor = SystemColors.ActiveBorder
Me.Controls.Add(lab)
lab.Dock = DockStyle.Fill
AddHandler lab.Click, AddressOf panel_Click
If String.IsNullOrEmpty(Me.Text) Then
lab.Show()
End If
End Sub
''' <summary>
''' usage :
''' dans l'évenement Load de la form ( MyBase.Load )
''' Dim tex As New InTextboxLabel("User Name", Image.FromFile("annsom.png"))
''' </summary>
'''
'''
''' <remarks></remarks>
Public Sub New(ByVal hint As String, Optional ByVal picture As Image = Nothing)
Me.New()
Me.Hint = hint
Me.Picture = picture
End Sub
#Region " Propriétés "
Private m_HintAlignment As ContentAlignment = ContentAlignment.MiddleLeft
Public Property HintAlignment() As ContentAlignment
Get
Return m_HintAlignment
End Get
Set(ByVal value As ContentAlignment)
m_HintAlignment = value
lab.TextAlign = m_HintAlignment
End Set
End Property
Private m_Hint As String = "Entrer un texte"
Public Property Hint() As String
Get
Return m_Hint
End Get
Set(ByVal value As String)
m_Hint = value
lab.Text = Hint
End Set
End Property
Private m_PictureAlignment As ContentAlignment = ContentAlignment.MiddleRight
Public Property PictureAlignment() As ContentAlignment
Get
Return m_PictureAlignment
End Get
Set(ByVal value As ContentAlignment)
m_PictureAlignment = value
lab.ImageAlign = m_PictureAlignment
End Set
End Property
Private m_Picture As Image
Public Property Picture() As Image
Get
Return m_Picture
End Get
Set(ByVal value As Image)
m_Picture = value
If Not m_Picture Is Nothing Then
lab.Image = m_Picture
End If
End Set
End Property
#End Region
Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
MyBase.OnTextChanged(e)
If (Not String.IsNullOrEmpty(Me.Text)) Then
lab.Hide()
ElseIf (Not Me.Focused) Then
lab.Show()
End If
End Sub
Private Sub panel_Click(ByVal sender As Object, ByVal e As EventArgs)
lab.Hide()
Me.Select()
End Sub
Protected Overrides Sub OnLeave(ByVal e As System.EventArgs)
MyBase.OnLeave(e)
If String.IsNullOrEmpty(Me.Text) Then
lab.Show()
End If
End Sub
Protected Overrides Sub OnEnter(ByVal e As System.EventArgs)
MyBase.OnEnter(e)
lab.Hide()
End Sub
End Class </Li>
22 juin 2009 à 17:42
22 juin 2009 à 14:20
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.