formulaire windows comment ajouter une icône à la droite ou à la gauche d'une zone de texte
Je suis la construction d'une application Windows form et j'ai une zone de texte pour vos recherches.
Je voudrais mettre une icône de recherche à l'intérieur de la zone de texte à droite ou à gauche
comme ceci:
Je préfère à la droite
Mise à jour de 1
Je demande sur Windows forms pas ASP.net ou MVC
Bizarre concept. À partir d'un point de vue, je préfère voir des icônes comme celles-ci à le droit de contrôler et de ne pas la gauche, comme dans votre exemple.
c'est la recherche de panneau dans ce site 🙂
Voir ici: Bouton à l'intérieur d'un winforms zone de texte Ce n'est pas un réplique exacte, puisque vous êtes en demandant au sujet d'une icône au lieu d'un bouton. Mais la réponse est presque identique. Seule une petite tweak est nécessaire de remplacer un bouton pour un contrôle PictureBox (ou quelque chose d'autre qui peut afficher une icône). J' fortement il est recommandé de Hans réponse sur les solutions de rechange.
merci
c'est la recherche de panneau dans ce site 🙂
Voir ici: Bouton à l'intérieur d'un winforms zone de texte Ce n'est pas un réplique exacte, puisque vous êtes en demandant au sujet d'une icône au lieu d'un bouton. Mais la réponse est presque identique. Seule une petite tweak est nécessaire de remplacer un bouton pour un contrôle PictureBox (ou quelque chose d'autre qui peut afficher une icône). J' fortement il est recommandé de Hans réponse sur les solutions de rechange.
merci
OriginalL'auteur Agnieszka Polec | 2014-08-08
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un
Panel
, unTextBox
et unPictureBox
.La zone de texte doit être placé dans un Panneau de sorte que vous ne pouvez pas écrire plus de votre recherche d'image.
Si je n'utilise pas le panneau, est-il bon?
Le point du groupe est de simuler le "bien" de la zone de texte. Vous aurez également besoin de définir ses propriétés appropriées pour donner une frontière qui correspond à la zone de texte. Et de définir la zone de texte pour être sans bordure.
Encore plus simple: l'Utilisation d'une Étiquette! Il peut afficher l'image, peut être cliqué et vous permet d'économiser un coûteux de contrôle. Vous définissez son parent dans l'événement load:
textBox1.Parent = label1; textBox1.Location = Point.Empty;
pour afficher l'image à gauche, sélectionnez une valeur appropriée pour la zone de texte.gauche!Meh. Les panneaux et les étiquettes ne sont pas plus chers que les autres. Il est plus évident que vous êtes en utilisant un conteneur de contrôle si vous utilisez un Panneau plutôt qu'une Étiquette.
OriginalL'auteur tezzo
Vous pouvez créer un UserControl qui fera le nécessaire travail. Vous avez pour étendre la zone de texte de la classe. Regardez le code ci-dessous:
Et dans la méthode OnPaint vous pouvez spécifier l'image. Aussi, vous pouvez étendre cette d'avoir une propriété personnalisée qui peut être le chemin de l'image. De votre choix.
Ce qui maintient le texte figurant sur l'image?
où est le chemin de l'image s'il vous plaît dans l'exemple ci-dessus?
Il n'est pas le chemin de l'image. Vous devez ajouter vous-même. Atanas du code a un
BitmapImage
propriété qui prend unBitmap
objet. LeBitmap
classe a une méthode qui charge une image à partir d'un fichier:Bitmap.FromFile(...)
OriginalL'auteur Atanas Desev
À l'aide d'un contrôle à l'utilisateur, ou l'ajout de code à chaque fois que vous voulez faire cela peut devenir très lourd. Ma façon de gérer cela est d'ajouter un initialiseur de classe qui peut être appelée à partir de mon formulaire au moment de l'exécution. Le comportement de ce code est lorsque l'utilisateur commence à taper, l'image disparaît. Si la zone de texte n'a pas de contenu, puis l'image s'affiche. - Je gérer l'événement click pour la zone d'image pour définir le focus à la zone de texte à préserver l'illusion qu'il est une partie du contrôle, et de compenser la gauche, afin de permettre au | à l'affiche, indiquant que la zone de texte a le focus et est prêt à recevoir des commentaires.
Par la rédaction d'un contrôleur à la place d'un contrôle de l'utilisateur, j'ai éviter d'avoir à se propager tous les événements et les propriétés de la zone de texte par le biais de mon contrôle de l'utilisateur. Cette classe est dépendante du Système.De Windows.Les formes, et peuvent être inclus directement dans votre application Windows Forms, ou ajouté à une bibliothèque de contrôles qui peuvent être appelées à partir de plusieurs applications.
Ici est de savoir comment la classe devrait être utilisé à partir de la forme:
Tant que la zone de texte existe, et il a été ajouté à la forme, l'appel peut arriver à tout moment.
OriginalL'auteur James Bunch
Je suggère l'utilisation de
RichTextBox
au lieu deTextBox
.Et vous pouvez définir le Propriété BackgroundImage à la Charge de la forme :Et vous devez ajouter le traitement des événements comme
TextChanged
etleave
pour afficher et Masquer l'image d'arrière-planCe qui est terrible dans l'idée?? voulez-vous dire que le changement de zone de texte à richtextbox est terrible ou quoi exactement , veuillez expliquer
Un
RichTextbox
est un très cher contrôle. Aucun de ses caractéristiques sont ici. Même à l'aide d'unPictureBox
est exagéré. La façon la plus simple est d'utiliser unTextbox
à l'intérieur d'unLabel
.Si je uderstood vous pensez que le fait de mettre la "recherche" mot comme un texte par défaut dans la zone de texte est mieux et plus facile que de changer de zone de texte à richtextbox. Mais, je pense que l'OP mentionné qu'elle a besoin d'ajouter une icône n'est pas une simple "recherche de texte". Pour être honnête, je ne sais pas une méthode pour ajouter une image d'arrière-plan dans une zone de texte , pour cette raison, je vous suggère de changer de richtextbox qui ont cette propriété.
Non, vous ne me comprenez pas. Le Texte doit être supprimé de la
Label
et une image doit être ajouté à la place! Remarque: Le bon vieuxLabel
est probablement le moste sous-estimée de tous lesControls
. Faire un coup d'oeil!! Il peut afficher une aligné de l'image, comme cela a été demandé.OriginalL'auteur Lamloumi Afif
Le long des lignes de Atanas la réponse que j'ai trouvé ce qui suit pour bien travailler.
La
SearchImage
etCancelSearchImage
propriétés peuvent être définies pour contrôler les images utilisées.Un EM_SETMARGINS message est envoyé à empêcher que le texte en train de disparaître sous le bouton.
OriginalL'auteur Woolly
Le long des lignes de Atanas la réponse que j'ai trouvé ce qui suit pour bien travailler. Le
SearchImage
etCancelSearchImage
propriétés peuvent être définies pour contrôler les images utilisées.OriginalL'auteur Woolly