2010-12-15 4 views
0

Je dois placer une zone de liste déroulante sur un formulaire qui affiche une liste de clients.Problèmes de configuration correcte de la combobox VB.NET

Chaque client dispose d'un numéro de client et le nom du client. J'ai découvert que VB.NET ne dispose pas de zones de liste déroulantes multi-colonnes afin de contourner le fait que j'allais interroger les données et mettre un onglet entre le numéro de client et le nom des membres d'affichage et avoir la valeur membre soit le numéro de client:

SELECT CustomerNumber AS ValueMember, 
CustomerNumber + CHAR(9) + CustomerName AS DisplayMember 
FROM Customers 
ORDER BY CustomerNumber 

Cela ne fonctionne que partiellement en ce que dans la zone sélectionnée de la liste déroulante, l'onglet entre le numéro et le nom indique, mais quand vous laissez tomber vers le bas de la zone de liste déroulante, l'onglet n'est pas conservée.

Pourquoi il n'y a pas natif combobox multi-colonne pour VB.NET me agace, mais c'est tout autre sujet.

Est-ce que quelqu'un a des idées pour une solution à ce problème qui ne nécessite pas d'obtenir un contrôle tiers?

Merci.

+0

Beaucoup d'options, google + « plusieurs colonnes » + combobox –

+0

Il est donc essentiellement tiers ou rien pour une solution alors? – Tom

Répondre

1

Si la chute ne baisse supporte pas le caractère de tabulation, il suffit de remplacer votre personnage onglet avec un espace blanc. par exemple.

SELECT CustomerNumber AS ValueMember, 
CustomerNumber + ' ' + CustomerName AS DisplayMember 
FROM Customers 
ORDER BY CustomerNumber 

Ai-je raté quelque chose? Utilisez-vous le caractère de tabulation pour autre chose que le formatage des données affichées? Sinon, 4 espaces blancs devraient avoir le même effet.

+0

Eh bien, je voudrais que les deux éléments soient espacés uniformément de sorte qu'il semble propre dans la liste déroulante. Je suppose que je pourrais calculer un certain nombre d'espaces en fonction de la longueur du numéro de client, mais il doit y avoir une solution plus élégante. – Tom

+0

Et le ci-dessus de calcul des espaces ne fonctionnera qu'avec une police de largeur fixe. – Tom

Questions connexes