bonjour
j'ai un formulaire vb.net 2008, je veux, lors du clic sur le champ texte, la couleur de bordure de ce champ change.
merci
bonjour
j'ai un formulaire vb.net 2008, je veux, lors du clic sur le champ texte, la couleur de bordure de ce champ change.
merci
Bonjour
je crois qu'on peut pas changer la coleur des bordures du contrôle TextBox
mais on peut changer la coleur du fond de ce contrôle
Bien à vous
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub TextBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Click TextBox1.BackColor = Color.Red End Sub
Cdt ,
La seul façon de le faire à ma connaissance est de créer une nouvelle classe héritant des propriétés de la textbox et de surcharger ses propriétés.
je n'ai pas bien compris la méthode de surcharge.
j'ai essayé de dessiner des lignes contournant le textbox.
je sais que ce n'est pas la meilleure méthode, en plus j'ai trouvé une difficulté pour effacer ces lignes (lorsque je quitte le champ).
voici le code:
L'appel:
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
21
22
23
24
25 Public Sub contour_textbox(ByVal gb As System.Windows.Forms.Control, ByVal objtext As System.Windows.Forms.TextBox, ByVal bool As Boolean) Dim g = gb.creategraphics Dim largeur As Integer = 1 Dim pinceau As New pen(color.blue, largeur) If bool = False Then g.Dispose() Else g.drawline(pinceau, objtext.location.x - largeur, _ objtext.location.y - largeur, _ objtext.location.x + objtext.width, _ objtext.location.y - largeur) g.drawline(pinceau, objtext.location.x - largeur, _ objtext.location.y + objtext.height, _ objtext.location.x + objtext.width, _ objtext.location.y + objtext.height) g.drawline(pinceau, objtext.location.x - largeur, _ objtext.location.y - largeur, _ objtext.location.x - largeur, _ objtext.location.y + objtext.height) g.drawline(pinceau, objtext.location.x + objtext.width, _ objtext.location.y - largeur, _ objtext.location.x + objtext.width, _ objtext.location.y + objtext.height) End If End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Private Sub TxtCode_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtCode.LostFocus contour_textbox(Me.GroupBox1, Me.TxtCode, False) End Sub Private Sub TxtCode_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtCode.GotFocus contour_textbox(Me.GroupBox1, Me.TxtCode, True) End Sub
Effectivement c'est loin d'être la meilleure méthode :-)
Quand à les effacer, il me semble que le seul moyen soit de redessiner dessus, où d'utiliser la méthode ".dispose" sur ton support de dessin.
Pour moi la meilleur méthode reste la surcharge, la textbox étant de base déjà constituée de "bordures", les propriétés de "coloriage" de bordures n'étant pas disponibles, tu peux, c'est sûr les "creer" en créant un nouveau contrôle "TaTextBox" sur la base d'un contrôle TextBox classique, en y ajoutant les propriétés que tu souhaites (surcharger). Mais cela nécessite déjà une connaisance approfondie de la programmation.
Sinon ce composant existe sans doute déjà sur internet, à toi de trouver la bonne dll, mais il y a de fortes chances qu'elle soit payante.
merci methylene pour ton aide, je n'ai pas une bonne connaissance en surcharger surtout en vb, mais je vais essayer un des deux suggestions.
Partager