Member 13462842 Ответов: 1

Как я могу получить объект из его свойства


private void ButtonGetListOfOPCServers_Click(object sender, EventArgs e)
        {
            
             obj = new tester(); 
            Opc.Server[] servers= obj.Getserver();
            if (servers!=null)
            {
                foreach(Opc.Server server in servers)
                {
                    ListBoxListOfOPCServers.Items.Add(server.Name);
                }
            }
            
         }


private void ListBoxListOfOPCServers_SelectedIndexChanged(object sender, EventArgs e)
        {
            
            
            obj.M_server = ListBoxListOfOPCServers.SelectedItem as Opc.Da.Server;


        }


Что я уже пробовал:

я хочу назначить сервер тому, что я выбрал в списке.
но потому что это сервер.Имя , которое я показываю, я не могу вернуть его обратно на сервер.

Спасибо!

Karthik_Mahalingam

"Имя" - это строковое свойство?

Member 13462842

да

Karthik_Mahalingam

использовать  Ответить  кнопка, чтобы отправить комментарии/запрос пользователю, чтобы пользователь получил уведомление и ответил на ваш текст.

1 Ответов

Рейтинг:
4

BillWoodruff

Вы должны быть в состоянии получить некоторые идеи из этого "эскиза:"

using System;
// using Opc; ?

namespace YourNameSpace
{
    public class YourClass
    {
        private Tester TheTester;
        private Opc.Server[] Servers;
        private Opc.Da.Server CurrentServer;

        private void ButtonGetListOfOPCServers_Click(object sender, EventArgs e)
        {
            TheTester = new Tester();
            Servers = TheTester.Getserver();

            if (Servers == null)
            {
                // handle failure to get servers ?
                return;
            }
            else
            {
                ListBoxListOfOPCServers.DataSource = Servers;
                ListBoxListOfOPCServers.DisplayMember = "Name";
                ListBoxListOfOPCServers.SelectedIndexChanged += ListBoxListOfOPCServers_SelectedIndexChanged;
            }
        }

        private void ListBoxListOfOPCServers_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selNdx = ListBoxListOfOPCServers.SelectedIndex;

            if (selNdx == -1)
            {
                // handle no selection: update prior selection ?
                // throw error ?
                return;
            }

            CurrentServer = ListBoxListOfOPCServers.SelectedValue as Opc.Da.Server;

            if (CurrentServer == null)
            {
                // handle server access faiulure ?
                // throw error ?
                return;
            }

            TheTester.M_server = CurrentServer;
        }
    }
}


Graeme_Grant

+5 ... должен любить привязку данных ;)

Karthik_Mahalingam

5