示例#1
0
        //---------------------------------------------------------------------------
        public override object EditValue(ITypeDescriptorContext context,
                                         IServiceProvider provider, object value)
        {
            if (context != null && context.Instance != null && provider != null)
            {
                // Получаем интерфейс сервиса
                edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));

                if (edSvc != null)
                {
                    IDataLinkLayer       current;
                    FormConnectionEditor frm;
                    // Получаем текущий редактируемый компонент или создаём его
                    if (context.Instance != null)
                    {
                        Modbus.WCF.NetworksServer.Network.Network network =
                            (Modbus.WCF.NetworksServer.Network.Network)context.Instance;
                        current = (IDataLinkLayer)network.Connection;
                        if (current != null)
                        {
                            if (current.IsOpen())
                            {
                                current.CloseConnect();
                            }
                        }
                        // Создаём форму для редактирования
                        frm            = new FormConnectionEditor();
                        frm.Connection = current;
                    }
                    else
                    {
                        frm = new FormConnectionEditor();
                    }

                    //DialogResult result = frm.ShowDialog();
                    DialogResult result = edSvc.ShowDialog(frm);

                    if (result == DialogResult.OK)
                    {
                        value = frm.Connection;
                    }

                    frm.Dispose();
                }
            }
            return(value);
        }
示例#2
0
        //---------------------------------------------------------------------------
        public override object EditValue(ITypeDescriptorContext context, 
            IServiceProvider provider, object value)
        {
            if (context != null && context.Instance != null && provider != null)
            { 
                // Получаем интерфейс сервиса
                edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
                
                if (edSvc != null)
                {
                    IDataLinkLayer current;
                    FormConnectionEditor frm;
                    // Получаем текущий редактируемый компонент или создаём его
                    if (context.Instance != null)
                    {
                        Modbus.WCF.NetworksServer.Network.Network network =
                            (Modbus.WCF.NetworksServer.Network.Network)context.Instance;
                        current = (IDataLinkLayer)network.Connection;
                        if (current != null)
                        {
                            if (current.IsOpen())
                            {
                                current.CloseConnect();
                            }
                        }
                        // Создаём форму для редактирования
                        frm = new FormConnectionEditor();
                        frm.Connection = current;
                    }
                    else
                    {
                        frm = new FormConnectionEditor();
                    }
                    
                    //DialogResult result = frm.ShowDialog();
                    DialogResult result = edSvc.ShowDialog(frm);

                    if (result == DialogResult.OK)
                    {
                        value = frm.Connection;
                    }
                    
                    frm.Dispose();
                }
            }
            return value;
        }