Visual C# 2008: невызываемый член «Microsoft.VisualBasic.Devices.Ports.SerialPortNames» не может использоваться как метод

может кто-нибудь помочь мне с этой проблемой ..? получил эту ошибку при попытке отладки кода..

        private void Form2_Load(object sender, System.EventArgs e)
    {
        this.Show();
        Form1.DefaultInstance.Close();
        ToolTip1.SetToolTip(ComboBox1, "Please enter a VALID phone number");
        ToolTip1.SetToolTip(ComboBox2, "Please check your COM port number before selecting. Connection could be made for outgoing cable or bluetooth port with data calling supported phone.");
        ComboBox1.SelectedIndex = 0;

        for (int i = 0; i < My.Computer.Ports.SerialPortNames.Count; i++)
        {
            ComboBox2.Items.Add(My.Computer.Ports.SerialPortNames(i));
        }

        ComboBox2.SelectedIndex = 0;
    }

это происходит в "SerialPortNames" в этой строке:

ComboBox2.Items.Add(My.Computer.Ports.SerialPortNames(i));

person Kerr_Krek    schedule 22.04.2013    source источник
comment
Вы, вероятно, захотите использовать индексатор - [] вместо вызова метода ()   -  person alex    schedule 22.04.2013
comment
Можете ли вы помочь мне показать, где я должен разместить индексатор, пожалуйста?   -  person Kerr_Krek    schedule 22.04.2013
comment
ВОТ ЭТО ДА!!!!!!! Спасибо, мой друг!!!!! я пробую и ставлю indexer- [i], и он работает как шарм!!!!! большое спасибо!!!! Я действительно очень ценю вашу помощь... еще раз спасибо...   -  person Kerr_Krek    schedule 22.04.2013


Ответы (3)


Вы, вероятно, захотите использовать индексатор - [] вместо вызова метода ()

  for (int i = 0; i < My.Computer.Ports.SerialPortNames.Count; i++)
  {
        ComboBox2.Items.Add(My.Computer.Ports.SerialPortNames[i]);
  }
person alex    schedule 22.04.2013

Возможно, попробуйте

For Each sp As String In My.Computer.Ports.SerialPortNames
    ListBox1.Items.Add(sp)
Next 

Это было взято с http://msdn.microsoft.com/en-us/library/yfbcbt43%28v=vs.90%29.aspx

person 3dd    schedule 22.04.2013
comment
уже попробовал этот метод, и он не сработал, или я не знаю, как работает этот код... кстати, он уже решается... большое спасибо за помощь... :-) - person Kerr_Krek; 22.04.2013

Вы используете его как метод, а не как коллекцию (после него следует (i)).

Попробуйте один из этих двух:

for (int i = 0; i < My.Computer.Ports.SerialPortNames.Count; i++)
{
  ComboBox2.Items.Add(My.Computer.Ports.SerialPortNames[i]);
}

or

foreach(var portname in My.Computer.Ports.SerialPortNames)
{
  ComboBox2.Items.Add(portname);
}
person yoozer8    schedule 22.04.2013