cboulas
Messages postés2641Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 8 janvier 201416 24 nov. 2011 à 13:13
Alors dans ce cas il faut modifier la fonction Paint de ton contrôle afin qu'il récupère l'arrière plan et le colle au sien juste la partie qu'il lui faut
Chris...
- La vérité n'est pas ailleurs, elle est sous le nez de chacun, quelques mouvements neuronale permettent de l'entrevoir -
MCPD (webform-winform) / MCSA / MCDST / MCT
cboulas
Messages postés2641Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 8 janvier 201416 24 nov. 2011 à 13:16
Regarde également ce lien qui devrait t'aider lien
Chris...
- La vérité n'est pas ailleurs, elle est sous le nez de chacun, quelques mouvements neuronale permettent de l'entrevoir -
MCPD (webform-winform) / MCSA / MCDST / MCT
Jeromedu79
Messages postés119Date d'inscriptiondimanche 9 janvier 2011StatutMembreDernière intervention23 décembre 20121 21 nov. 2011 à 21:40
Désolé je me suis de tromper de bouton >< je voulais voir un aperçu.
Donc, la barre d'URL ci-dessus est une image (PictureBox) importé dans la forme.
Je voudrais donc, poser une textbox dans le champ en blanc, mais quelle soit invisible et que l'on puisse écrire dedans.
Pourquoi la rendre invisible vue qu'il y aura toujours du blanc aller vous me dire ?
J'ai ma réponde L'image ci-dessus n'est qu'un exemple, je vais la remplacer par une image un peux plus sympas (sans couleur unis).
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 22 nov. 2011 à 08:12
Bonjour,
1) La véritable transparence n'est pas vraiment possible à ma connaissance avec une textbox
2) un "aspect" de transparence est par contre possible, mais démesurément "cher" si l'on veut garder intactes les fonctionnalités de la textbox. Il fait appel à 24 fonctions de l'Api de Windows et au sous-classement de la textbox (rien que çà !)
Ce qui veut dire qu'en plus d'alourdir une appli, ce code (la partie sous-classement) reste assez délicat et nécessite le plus grand soin à apporter, tout au long du code de l'appli, si l'on veut éviter un crash.
J'ai ce code en VB6. Si tu y tiens vraiment, je le mets ici (et à toi de le transposer pour VB.Net). Je te le déconseille cependant personnellement très vivement.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
ehjoe
Messages postés728Date d'inscriptionsamedi 4 avril 2009StatutMembreDernière intervention30 mars 20144 22 nov. 2011 à 08:17
Bonjour Jeromedu n°79,
Invisible sous entends souvent que l'objet ne se voit pas, il n'a pas de contour (borderStyle) et sa couleur est la même que celle de l'objet dessous qui le reçoit (la form généralement).
Le premier problème est de savoir commment trouver un textBox qui serait invisible pour saisir dedans ?
Le second problème c'est que la saisie ne sera pas infinie, elle va se limiter en zone visible à la taille en largeur de la pictureBox...
Tu parles d'une textBox et tu mets en exemple une photo de Google, ouais...
Théoriquement il suffirait d'enlever les bords et de donner la couleur du support en dessous, ou de mettre la propriété visible à faux mais on ne pourrait plus saisir dans ce cas ; par contre on peut mettre enabled = false, ça estompe le texte visible, mais on ne peut plus saisir dedans...
Pas clair, qu'elle est l'utilisation prévu d'une telle manipulation, car on comprend mieux quand on sait pourquoi c'est faire ?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 22 nov. 2011 à 08:36
Pourquoi la rendre invisible vue qu'il y aura toujours du blanc aller vous me dire ?
J'ai ma réponde L'image ci-dessus n'est qu'un exemple, je vais la remplacer par une image un peux plus sympas (sans couleur unis).
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137 22 nov. 2011 à 08:40
Bonjour,
UCFOUTU, je sais que tu ne programmes pas en Net. Depuis VB2005 on peut facilement rendre une TextBox ou autres contrôles transparents en utilisant la propriété du Form: TransparencyKey.
Je l'ai expliqué dans la source que cite notre ami Jeromedu79
Par contre la demande de Jeromedu79 n'est pas très claire. je dirais même transparente(LOL)
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 22 nov. 2011 à 10:14
Bonjour, LePivert,
Je me demande si tu as bien lu ce que demande Jeromedu79.
Ce qu'il veut, c'est une textbox dont le fond laisse passer toutes les couleurs d'une image qu'elle recouvre (donc l'image elle même et je suppose que cette image est sur le Form lui-même).
Quelle valeur/couleur vas-tu alors donner à TransparencyKey (qui n'en accepte qu'une) ?
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 22 nov. 2011 à 10:35
Et je suppose qu'il veut conserver TOUTES les fonctionnalités de sa textbox, ainsi que son Forecolor . Que seul le fond de sa textbox laisse "voir" TOUT ce qui se trouve en-dessous, sans rien perdre ni modifier d'autre
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 22 nov. 2011 à 11:02
Il peut tout décider, bords ou pas bords, mais ce ne sera jamais avec une véritable transparence (juste un "aspect" de transparence)
Et (surtout), cela fera plutôt "fouillis" visuellement, c'est sûr et gênera l'utilisateur final (surtout si son acuité visuelle n'est pas des meilleures).
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137 22 nov. 2011 à 11:08
UCFOUTU et HeJoe, vous n'avez pas pris la peine de consulter ma source avant de répondre. Donc je vais expliquer le fonctionnement de la propriété TransparencyKey du Form:
Si vous mettez White à cette propriété tout ce qui est Blanc dans le Form sera transparent, texte, contrôle etc., c'est simple. Il faut donc bien choisir cette couleur pour ne rendre transparent que le texBox que l'on mettra de la même couleur. Dans ce textBox on pourras voir ce qu'il y a derrière. Cela Jeromdu79 la bien compris. Mais je me demande toujours ce qu'il veut?
Jeromedu79
Messages postés119Date d'inscriptiondimanche 9 janvier 2011StatutMembreDernière intervention23 décembre 20121 22 nov. 2011 à 18:27
Bonsoir,
Merci pour votre aide, je m'attendais pas à autant de messages
Pour répondre à votre question Le Pivert, je vais vous présentez mon application :
Il s'agit en faite d'un navigateur très simple pour le moment car il ne dispose que de deux boutons (Précédent et suivant), d'une Textbox (Pour taper l'URL d'un site), d'un WebBrowser et d'une PictureBox.
Gardons juste la Textbox et la PictureBox.
Comme je l'es dit ci-dessus, l'utilisateur utilisant le navigateur tapera l'URL d'un site dans cette dernière.
Mais il faut quand même un peux de design pour cette Textbox au lieu d'un vaste champ blanc entouré d'un cadre à couleur unis vous ne croyez pas ?
Notre PictureBox rentre alors en action
En effet, elle servira en autre à refaire le design de la textbox :
Donc, sur notre form nous allons placé la PictureBox qui représentera un design de Texbox en mieux , puis nous allons placé cette fameuse Textbox sur la PictureBox en essayant de faire disparaître le cadre (contour), et le Background (blanc) mais tout en laissant le texte en noir (Foreground).
De sorte à ce que l'utilisateur puisse écrire dans cette textbox invisible en sélectionnant le cadre prévue à cette effet sur la PictureBox
Bonsoir Le Pivert,
Je viens de tester ta solution qui fonctionne très bien avec ce code :
Public Class Form1
Dim MaTextBox As New TextBox With {.Top 20, .Left 20, .Width = 200, .BackColor = Color.WhiteSmoke}
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
Me.TransparencyKey = Color.WhiteSmoke
e.Graphics.FillRectangle(New SolidBrush(Color.WhiteSmoke), MaTextBox.Bounds)
If Not Me.Controls.Contains(MaTextBox) Then Me.Controls.Add(MaTextBox)
MaTextBox.Focus
End Sub
End Class
J'ai dû mettre WhiteSmoke comme couleur sinon il m'était impossible de cliquer sur la barre de titre de ma form.
La textbox est bien transparente, on peut y écrire dedans, mais (oui parce que il y a toujours un mais), lorsque je clique dedans, c'est l'application d'arrière plan qui prend le focus. Comme s'il y avait un trou dans le formulaire. J'ai lu les commentaires de ta source. As-tu trouvé une solution à ce problème depuis ?
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137 23 nov. 2011 à 08:08
Jeromdu79, j'ai bien compris ce que tu voulais faire. Je ne pense pas que ce soit la solution, car on ne peut pas avoir le focus dans la textBox. Il va falloir chercher dans une autre direction.
banana32, je n'ai pas trouvé de solution. Cette propriété est sans doute limitée a faire un effet visuel!
Bonne programmation à tous
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 23 nov. 2011 à 08:36
Bon,
je rappelle donc ce que j'ai dit beaucoup plus haut, d'entrée de jeu :
1) La véritable transparence n'est pas vraiment possible à ma connaissance avec une textbox
2) un "aspect" de transparence est par contre possible, mais démesurément "cher" si l'on veut garder intactes les fonctionnalités de la textbox. Il fait appel à 24 fonctions de l'Api de Windows et au sous-classement de la textbox (rien que çà !)
Ce qui veut dire qu'en plus d'alourdir une appli, ce code (la partie sous-classement) reste assez délicat et nécessite le plus grand soin à apporter, tout au long du code de l'appli, si l'on veut éviter un crash.
J'ai ce code en VB6. Si tu y tiens vraiment, je le mets ici (et à toi de le transposer pour VB.Net). Je te le déconseille cependant personnellement très vivement.
Et celle-ci, de solution, respecte tout.
Mais elle est "chère".
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient