I can see a few of things wrong, mainly the method ListAvailableSQLServers is very costly, you on ly need to call it once not three times, you never use i and the NameList is a one-based collection:
Code:
Dim i As Integer
Dim oSQLApp As SQLDMO.Application
oSQLApp = New SQLDMO.Application()
Dim colNames As SQLDMO.NameList
colNames = oSQLApp.ListAvailableSQLServers()
For i = 1 To colNames.Count
cboServer.Items.Add(colNames(i)
Next i
--
Joe