In a Windows form, I want to show a list of Genes to the user, so he can pick from that list and add to his list of Genes...the number of Genes is around 40,000. How do you suggest to show that list to the user?
I do not recommend showing this list to the user. Find some form of structure. No one wants to look through 1000s of items, let alone 10,000s.
Are there genes that are more or less relevant? More or less similar? Group them somehow.
Do they know the name? If so, allow type-ahead, but give context for the matches, to make sure they've named the one they intended.
Would it be more appropriate to provide some sort of wizard or guided search?
I have a different approach when I get to such a list.
I try to understand the user and make a list and a preference pattern. This helps me to understand that if a User is selecting G1 he is also including G200 and G300. This is a pattern which I can make and then after a lot of user has already been using I can make my system intelligent enough to make such pattern.
Once I have this, I will give a auto complete search functionality and once a selection is made, i will give a place holder where I can show the suggested Genes.
Yes the approach will not be a normal section box but a rich UI with 2-3 separate placeholders. But this approach will help in reducing a lot of user effort for searching from the list of 40k items.
Well, you don't want them scrolling or paginating through a 40k list, that would be pretty meaningless. It is the place to start, though. Auto-complete on keyed entry would be necessary as well as providing combinations of filter-search functionality: alpha/numerical, nucleotide constituents etc.
There are vastly different ways of classifying genes for different purposes (as previous requests for more info have suggested), but if you have a lot of time and wanted to get really fancy; provide a navigable structure based on tags of known effects or sequence motif conjectures (you'd be leaping ahead of the industry, but that'd be a good place to be as the proofs start to appear). This totally depends on your target audience, though.