J'utilise une boîte de liste déroulante dans WinForm mais quand j'ai été sélectionné n'importe quel article dans la liste déroulante, puis élément de fond de fond de fond est bleu. Je veux retirer cette couleur de fond bleue (en particulier sur la charge de formulaire, essayé de définir la mise au point sur une autre commande sous la forme, mais la mise en surbrillance de combo non supprimée) mais l'élément doit être sélectionné. p>
Quelqu'un peut-il aider sur ceci ...? p>
7 Réponses :
Il semble que le seul moyen de le faire est de sous-classer la commande ComboBox. P>
Voici un exemple où quelqu'un fait ça: p>
Il y a probablement plus sur le Web pour vous guider. P>
Le lien donné explique comment montrer la totalité de l'info-bulle lorsque la souris survole sur l'élément Combobox. Ce n'est pas une réponse à la question.
J'ai trouvé quelque chose sur Ce site
Créer Une minuterie et activez-la dans votre événement sélectionnéExchanged, et dans la minuterie, ajoutez simplement Code Snippet P> Combobox1.select (0,0) code> Ceci devrait supprimer la pièce de sélection, puis désactiver la minuterie. Identifiez d'autres points d'entrée dans lesquels vous pouvez utiliser P> P>
private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
{
//Get the item selected in the combobox
ComboBox cbx = (ComboBox)sender;
int idx = cbx.SelectedIndex;
string s1 = cbx.SelectedItem.ToString();
// Enable the time so that the Highlight can be removed
timer1.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
// Remove the Highlight
comboBox1.Select(0, 0);
// Disable timer
timer1.Enabled = false;
}
comboBox1.select (0, 0) - ne fonctionne pas car Combobox est "DropdownList" non modifiable de texte autorisé ..,
@Dhaana définit alors comboBox1.selectionlength = 0 code> travail?
Il existe une solution facile pour vous espère qu'il aide :) p> p>
cela ne prendrait-il pas la sélection?
Je ne suis pas un gros utilisateur de VB et je ne joue qu'avec Excel, mais aussi eu ce problème lorsqu'une sélection a été faite dans mon ComboBox. J'ai finalement trouvé un moyen de me débarrasser du texte bleu sur la surbrillance. P>
J'ai une combinaison sur une formulaire user. En sélectionnant la combinaison de ComboBox et en affichant les propriétés, changez simplement la "HidesLection" sur TRUE a fonctionné pour moi. Vous pouvez également coder pour cela: Combobox1.Hideselection = true p>
Ceci est la solution correcte. Bien que votre réponse soit à propos de VBA, c'est la même chose pour Winforms avec C # et VB.NET. Vous devez définir la propriété Hideselection code> sur
true code>. Étrange, cependant; cela devrait être la valeur par défaut.
@Cody Grey - Je ne trouve pas de Hideselection code> Propriété pour une combinaison de comboBox sous Windows. Il existe pour Teintboxbase et les contrôles qui l'héritent, mais Combobox ne le fait pas. Qui est une honte, comme je l'aimerais vraiment un! (J'utilise Visual Studio 2013 avec .NET 4.5)
@jonp hmm, je ne sais pas ce que je pensais quand j'ai écrit ce commentaire il y a plusieurs années. Vraisemblablement, cela avait travaillé pour moi à l'époque. Je pensais que peut-être que ComboBox masque la méthode de la classe de base, mais un aspect rapide de la source de référence suggère qu'il n'a même pas la même hiérarchie que la zone de texte. Il hérite réellement de ListControl, qui hérite du contrôle. Donc, il n'y a pas de propriété cachée à définir. Peut-être que vous pouvez obtenir au contrôle de la zone de texte sous-jacent, bien que .NET ne fournisse aucune manière gérée de le faire. Vous devrez utiliser p / invoke pour obtenir la poignée. ...
Demandez une nouvelle question ou placez une prime sur celle-ci si vous avez besoin d'une solution complète. Bien que je me demande pourquoi quelqu'un aurait vraiment besoin de cela. Dans toutes les comboBoxes que j'ai vues, cacher la sélection est la valeur par défaut. Toute sélection qui a été faite disparaît lorsque la mise au point quitte la commande ComboBox. C'est tout la propriété de hache de haies Comme je l'ai dit auparavant, il s'agit de la valeur par défaut pour les commandes de Textbox et ComboBox. Si vous demandez une nouvelle question, assurez-vous de préciser ce qui rend votre situation différente. @jonp
@Cody je n'ai pas dit que je devais la définir. J'ai besoin de la définir faux! Ma fonction de recherche / remplacement Sélectionne le texte trouvé pour la mettre en surbrillance, puis affiche une boîte de dialogue vous demandant si vous souhaitez remplacer cette occurrence, ce qui perd la mise au point sur le ComboBox et la mise en évidence disparaît. Je vais poser une nouvelle question si je ne peux pas le résoudre d'une autre façon (je pense que les gens sont trop prompts à poser des questions sur ce forum, ils ont besoin d'essayer un peu plus fort en premier!)
Pour résoudre la même chose que j'ai essayé presque tout:
Dropdownstyle Code> Propriété à Dropdownlist LI>
-
this.begininvoke (nouvelle action ((() => {comboBox1.select (0, 0);})); code> li>
-
comboBox1.selectionLength = 0; code> li>
- Changer
Combobox.tabindex CODE> LI>
- pas essayé
sendkeys.send ("{escicade"); code> car il n'est pas une solution fiable li>
ul> rien n'a aidé. Peut-être parce que je n'ai pas de texte dans mes articles Combobox, seules des images.
La seule solution stable et de travail consistait à se concentrer sur une autre commande d'étiquette: p> xxx pré> Vous pouvez également masquer cette étiquette. P> p>
Je suis tombé sur le même problème et, après avoir trouvé une solution de travail, j'ai eu la même idée que @vadim K.
Voici un court exemple. P>
première étape consiste à changer la mise au point l'événement UI_LOAD. P>
Private Sub comboExportDates_SelectedIndexChanged(sender As Object, e As EventArgs) Handles comboExportDates.SelectedIndexChanged Me.lblTitle.Focus() End Sub
simple manière tout simplement désactiver la combinaison de ComboBox, puis activez-le et même vous sélectionnez un élément à l'intérieur de celui-ci, l'élément sera toujours sélectionné mais que la surbrillance ira P> P>
À peu près sûr, vous pouvez simplement définir l'index sélectionné sur -1, mais cela fait un certain temps.
Mais l'article devrait être sélectionné ...
Utilisez-vous un thème de couleur spécial sur Windows ?? cela ne devrait pas arriver sur une combinaison commune. Essayez de supprimer ce combo et d'en ajouter un nouveau. @Sawyer qui effacera le combo, mais ce n'est pas ce que Pos demande;)
@Dhana je vois, désolé j'ai raté ça. Je suppose que vous pourriez toujours remplacer le rendu et peindre la chose vous-même. Ensuite, c'est une couleur que vous voulez.