这个控件如何写?最好是VB.net的源码

这个控件怎么写?最好是VB.net的源码
我想编写一个有点类似combobox的控件。但是有几点不同。

第一、备选项的列不止一列,当然还是有一列是value。别的都算是display。

第二、希望可以在文本框中可以输入文本,当文本出现后,备选项就移动到最接近的想的附近。

第三、当用户焦点离开文本框时,控件自动选中最接近的一项,或者是用户选中的一项。

比如下表中数据填充到控件的选择集中。aaa列为value值,后面的为显示值。

然后设定bbb列为display列。

当在控件中键入A时,自动选择第一项。

当键入DO时,自动选中第二项。

键入DO-2时自动选中第四项。

键入DO-24时,仍选中第四项。(最接近的项)

如果此时用户直接离开控件,就默认选中该项。

如果用户用鼠标或者上下方向键选择某项,则自动选中该项。

另:当用户选中该控件,并输入值的时候,下拉列表就显示出来。当用户没有选中该控件,或者选中后还没有输入值的时候,那么就不显示下拉列表。
而且下拉列表中可以选择显示列头,就是aaa,bbb,ccc,ddd的columnhead。


aaa             bbb             ccc             ddd
1 A-405 A-405 1
2 DO-15(1.5A) DO-15(1.5A) 1
3 DO-15(2A) DO-15(2A) 1
4 DO-27 DO-27 1
5 DO-41 DO-41 1

请有经验的帮忙看看,怎么个思路解决这个问题,并且要有那些注意事项。

或者有已经写好的具有这功能的控件给我借鉴下。


------解决方案--------------------
到codeproject上去找找。
光提需求,没有人会帮你做的,如果在实际的开发中遇到某个具体的技术问题,再来问。
------解决方案--------------------
类似于游标技术
------解决方案--------------------
同意mapserver, 要带着问题去搜索,不可能你一点都不会吧,只会碰到难点的,那个时候你再细化问题,才可能学到东西。
------解决方案--------------------
应该 很容易的吧,把每个事件触发的条件弄清楚,很快就搞定~