private void SubscribeTabs <T>(object sender, IActiveContainer <T> extensions) { var tab = ((TabControl)sender).SelectedTab; var name = tab.Text; extensions.ActiveChanged(extensions.FirstOrDefault(x => x.GetType().Name == name)); }
private void ExtendTo <T>(TabControl control, IActiveContainer <T> extensions, Action <FlowLayoutPanel, T, PropertyInfo> PropertyCallBack) { foreach (var extension in extensions) { var name = extension.GetType().Name; var page = new TabPage { Text = name }; control.TabPages.Add(page); var floater = new FlowLayoutPanel { Dock = DockStyle.Fill }; floater.VerticalScroll.Enabled = true; floater.AutoScroll = true; floater.AutoSizeMode = AutoSizeMode.GrowAndShrink; floater.AutoSize = true; page.Controls.Add(floater); foreach (var prop in extension.GetType().GetProperties()) { PropertyCallBack(floater, extension, prop); } } }