//--------------------------------------------------------------------------- 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); }
//--------------------------------------------------------------------------- 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; }