Changeset 4830 for branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views
- Timestamp:
- 11/18/10 00:53:15 (13 years ago)
- Location:
- branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3
- Files:
-
- 6 added
- 3 deleted
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/HeuristicLab.Problems.MetaOptimization.Views-3.3.csproj
r4516 r4830 83 83 </ItemGroup> 84 84 <ItemGroup> 85 <Compile Include="RootParameterConfigurationView.cs"> 86 <SubType>UserControl</SubType> 87 </Compile> 88 <Compile Include="RootParameterConfigurationView.Designer.cs"> 89 <DependentUpon>RootParameterConfigurationView.cs</DependentUpon> 90 </Compile> 85 91 <Compile Include="NumericRangeView.cs"> 86 92 <SubType>UserControl</SubType> … … 101 107 <DependentUpon>ParameterConfigurationListView.cs</DependentUpon> 102 108 </Compile> 103 <Compile Include="NumericParameterConfigurationView.cs">104 <SubType>UserControl</SubType>105 </Compile>106 <Compile Include="NumericParameterConfigurationView.Designer.cs">107 <DependentUpon>NumericParameterConfigurationView.cs</DependentUpon>108 </Compile>109 109 <Compile Include="HeuristicLabProblemsMetaOptimizationViewsPlugin.cs" /> 110 110 <Compile Include="ParameterConfigurationView.cs"> … … 115 115 </Compile> 116 116 <Compile Include="Properties\AssemblyInfo.cs" /> 117 <Compile Include="ValueView.cs"> 118 <SubType>UserControl</SubType> 119 </Compile> 120 <Compile Include="ValueView.Designer.cs"> 121 <DependentUpon>ValueView.cs</DependentUpon> 122 </Compile> 117 123 </ItemGroup> 118 124 <ItemGroup> … … 127 133 </ItemGroup> 128 134 <ItemGroup> 135 <EmbeddedResource Include="RootParameterConfigurationView.resx"> 136 <DependentUpon>RootParameterConfigurationView.cs</DependentUpon> 137 </EmbeddedResource> 129 138 <EmbeddedResource Include="NumericRangeView.resx"> 130 139 <DependentUpon>NumericRangeView.cs</DependentUpon> … … 136 145 <DependentUpon>ParameterConfigurationListView.cs</DependentUpon> 137 146 </EmbeddedResource> 138 <EmbeddedResource Include="NumericParameterConfigurationView.resx">139 <DependentUpon>NumericParameterConfigurationView.cs</DependentUpon>140 </EmbeddedResource>141 147 <EmbeddedResource Include="ParameterConfigurationView.resx"> 142 148 <DependentUpon>ParameterConfigurationView.cs</DependentUpon> 149 </EmbeddedResource> 150 <EmbeddedResource Include="ValueView.resx"> 151 <DependentUpon>ValueView.cs</DependentUpon> 143 152 </EmbeddedResource> 144 153 </ItemGroup> -
branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/NumericRangeView.Designer.cs
r4516 r4830 1 1 namespace HeuristicLab.Problems.MetaOptimization.Views { 2 partial class NumericRangeView {2 partial class IntValueRangeView { 3 3 /// <summary> 4 4 /// Required designer variable. … … 56 56 this.lowerValueView.Caption = "StringConvertibleValue View"; 57 57 this.lowerValueView.Content = null; 58 this.lowerValueView.LabelVisible = true; 58 59 this.lowerValueView.Location = new System.Drawing.Point(38, 0); 59 60 this.lowerValueView.Name = "lowerValueView"; … … 68 69 this.upperValueView.Caption = "StringConvertibleValue View"; 69 70 this.upperValueView.Content = null; 71 this.upperValueView.LabelVisible = true; 70 72 this.upperValueView.Location = new System.Drawing.Point(38, 29); 71 73 this.upperValueView.Name = "upperValueView"; … … 89 91 this.stepSizeValueView.Caption = "StringConvertibleValue View"; 90 92 this.stepSizeValueView.Content = null; 93 this.stepSizeValueView.LabelVisible = true; 91 94 this.stepSizeValueView.Location = new System.Drawing.Point(38, 58); 92 95 this.stepSizeValueView.Name = "stepSizeValueView"; … … 95 98 this.stepSizeValueView.TabIndex = 5; 96 99 // 97 // NumericRangeView100 // IntValueRangeView 98 101 // 99 102 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); … … 105 108 this.Controls.Add(this.upperValueView); 106 109 this.Controls.Add(this.lowerValueView); 107 this.Name = " NumericRangeView";108 this.Size = new System.Drawing.Size(434, 145);110 this.Name = "IntValueRangeView"; 111 this.Size = new System.Drawing.Size(434, 85); 109 112 this.ResumeLayout(false); 110 113 this.PerformLayout(); -
branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/NumericRangeView.cs
r4516 r4830 14 14 namespace HeuristicLab.Problems.MetaOptimization.Views { 15 15 /// <summary> 16 /// The visual representation of a <see cref="I NumericRange"/>.16 /// The visual representation of a <see cref="IIntegerRange"/>. 17 17 /// </summary> 18 18 [View("NumericRange View")] 19 [Content(typeof(I NumericRange), true)]20 public partial class NumericRangeView : ItemView {19 [Content(typeof(IRange<IntValue>), true)] 20 public partial class IntValueRangeView : ItemView { 21 21 /// <summary> 22 22 /// Gets or sets the variable to represent visually. … … 24 24 /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="ViewBase"/>. 25 25 /// No own data storage present.</remarks> 26 public new I NumericRangeContent {27 get { return (I NumericRange)base.Content; }26 public new IRange<IntValue> Content { 27 get { return (IRange<IntValue>)base.Content; } 28 28 set { base.Content = value; } 29 29 } 30 30 31 public NumericRangeView() {31 public IntValueRangeView() { 32 32 InitializeComponent(); 33 33 } -
branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ObjectSelectorDialog.cs
r4516 r4830 13 13 private bool initialized; 14 14 private List<IItem> items; 15 private IEnumerable<IGrouping< string, T>> selectableItems;15 private IEnumerable<IGrouping<Type, T>> selectableItems; 16 16 17 17 private T item; … … 20 20 } 21 21 22 public ObjectSelectorDialog(IEnumerable<IGrouping< string, T>> selectableItems) {22 public ObjectSelectorDialog(IEnumerable<IGrouping<Type, T>> selectableItems) { 23 23 this.initialized = false; 24 24 this.items = new List<IItem>(); … … 32 32 itemsListView.SmallImageList = new ImageList(); 33 33 34 foreach (IGrouping< string, T> categoryin selectableItems) {35 ListViewGroup group = new ListViewGroup( category.Key);34 foreach (IGrouping<Type, T> item in selectableItems) { 35 ListViewGroup group = new ListViewGroup(item.Key.Name); 36 36 itemsListView.Groups.Add(group); 37 foreach (T i in category) {37 foreach (T i in item) { 38 38 items.Add(i); 39 ListViewItem item= new ListViewItem(new string[] { i.Name, i.Description, i.ItemName }, group);39 ListViewItem value = new ListViewItem(new string[] { i.Name, i.Description, i.ItemName }, group); 40 40 itemsListView.SmallImageList.Images.Add(i.ItemImage); 41 item.ImageIndex = itemsListView.SmallImageList.Images.Count - 1;42 item.Tag = i;43 itemsListView.Items.Add( item);41 value.ImageIndex = itemsListView.SmallImageList.Images.Count - 1; 42 value.Tag = i; 43 itemsListView.Items.Add(value); 44 44 } 45 45 } -
branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationListView.cs
r4516 r4830 11 11 using HeuristicLab.Core; 12 12 using HeuristicLab.PluginInfrastructure; 13 using HeuristicLab.Collections; 13 14 14 15 namespace HeuristicLab.Problems.MetaOptimization.Views { … … 17 18 /// </summary> 18 19 [View("ParameterConfigurationList View")] 19 [Content(typeof( ParameterConfigurationList), true)]20 [Content(typeof(IItemList<IParameterConfiguration>), true)] 20 21 public partial class ParameterConfigurationListView : ItemCollectionView<IParameterConfiguration> { 21 22 /// <summary> … … 24 25 /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="ViewBase"/>. 25 26 /// No own data storage present.</remarks> 26 public new ParameterConfigurationListContent {27 get { return ( ParameterConfigurationList)base.Content; }27 public new IItemList<IParameterConfiguration> Content { 28 get { return (IItemList<IParameterConfiguration>)base.Content; } 28 29 set { base.Content = value; } 29 30 } … … 35 36 protected override void RegisterContentEvents() { 36 37 base.RegisterContentEvents(); 37 Content.CheckedItemsChanged += new Collections.CollectionItemsChangedEventHandler<IParameterConfiguration>(Content_CheckedItemsChanged);38 38 } 39 39 40 40 protected override void DeregisterContentEvents() { 41 Content.CheckedItemsChanged -= new Collections.CollectionItemsChangedEventHandler<IParameterConfiguration>(Content_CheckedItemsChanged);42 41 base.DeregisterContentEvents(); 43 42 } … … 45 44 protected override void OnContentChanged() { 46 45 base.OnContentChanged(); 47 while (itemsListView.Items.Count > 0) RemoveListViewItem(itemsListView.Items[0]);48 viewHost.Content = null;49 if (Content != null) {50 Caption += " (" + Content.GetType().Name + ")";51 foreach (IParameterConfiguration item in Content.CheckedItems)52 AddListViewItem(CreateListViewItem(item));53 AdjustListViewColumnSizes();54 SortItemsListView(SortOrder.Ascending);55 }56 46 } 57 58 protected override void SetEnabledStateOfControls() {59 base.SetEnabledStateOfControls();60 }61 62 protected override void addButton_Click(object sender, EventArgs e) {63 var selectorDialog = new ObjectSelectorDialog<IParameterConfiguration>(from c in Content64 where !Content.ItemChecked(c)65 group c by c.Category);66 if (selectorDialog.ShowDialog() == DialogResult.OK) {67 Content.SetItemCheckedState(selectorDialog.Item, true);68 }69 }70 71 protected override void removeButton_Click(object sender, EventArgs e) {72 if (itemsListView.SelectedItems.Count > 0) {73 foreach (ListViewItem item in itemsListView.SelectedItems)74 Content.SetItemCheckedState((IParameterConfiguration)item.Tag, false);75 itemsListView.SelectedItems.Clear();76 }77 }78 79 private void Content_CheckedItemsChanged(object sender, Collections.CollectionItemsChangedEventArgs<IParameterConfiguration> e) {80 foreach (IParameterConfiguration item in e.Items) {81 if (!Content.ItemChecked(item)) {82 ListViewItem found = FindListViewItem(item);83 if(found != null)84 RemoveListViewItem(found);85 } else {86 ListViewItem found = FindListViewItem(item);87 if (found == null)88 AddListViewItem(CreateListViewItem(item));89 }90 }91 }92 93 #region Helpers94 private ListViewItem FindListViewItem(IParameterConfiguration tag) {95 foreach (ListViewItem item in itemsListView.Items) {96 if (item.Tag == tag)97 return item;98 }99 return null;100 }101 #endregion102 47 } 103 48 } -
branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationView.Designer.cs
r4516 r4830 25 25 private void InitializeComponent() { 26 26 this.optimizeCheckBox = new System.Windows.Forms.CheckBox(); 27 this.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost(); 27 this.tabControl = new System.Windows.Forms.TabControl(); 28 this.valueTabPage = new System.Windows.Forms.TabPage(); 29 this.valueViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost(); 30 this.configurationtabPage = new System.Windows.Forms.TabPage(); 31 this.configurationViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost(); 32 this.childParameterTabPage = new System.Windows.Forms.TabPage(); 33 this.childParameterConfigurationListView = new HeuristicLab.Problems.MetaOptimization.Views.ParameterConfigurationListView(); 34 this.tabControl.SuspendLayout(); 35 this.valueTabPage.SuspendLayout(); 36 this.configurationtabPage.SuspendLayout(); 37 this.childParameterTabPage.SuspendLayout(); 28 38 this.SuspendLayout(); 29 39 // … … 39 49 this.optimizeCheckBox.CheckedChanged += new System.EventHandler(this.optimizeCheckBox_CheckedChanged); 40 50 // 41 // viewHost51 // tabControl 42 52 // 43 this. viewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)53 this.tabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 44 54 | System.Windows.Forms.AnchorStyles.Left) 45 55 | System.Windows.Forms.AnchorStyles.Right))); 46 this.viewHost.Caption = "View"; 47 this.viewHost.Content = null; 48 this.viewHost.Location = new System.Drawing.Point(0, 26); 49 this.viewHost.Name = "viewHost"; 50 this.viewHost.ReadOnly = false; 51 this.viewHost.Size = new System.Drawing.Size(729, 455); 52 this.viewHost.TabIndex = 7; 53 this.viewHost.ViewType = null; 56 this.tabControl.Controls.Add(this.valueTabPage); 57 this.tabControl.Controls.Add(this.configurationtabPage); 58 this.tabControl.Controls.Add(this.childParameterTabPage); 59 this.tabControl.Location = new System.Drawing.Point(3, 26); 60 this.tabControl.Name = "tabControl"; 61 this.tabControl.SelectedIndex = 0; 62 this.tabControl.Size = new System.Drawing.Size(553, 447); 63 this.tabControl.TabIndex = 5; 64 // 65 // valueTabPage 66 // 67 this.valueTabPage.Controls.Add(this.valueViewHost); 68 this.valueTabPage.Location = new System.Drawing.Point(4, 22); 69 this.valueTabPage.Name = "valueTabPage"; 70 this.valueTabPage.Padding = new System.Windows.Forms.Padding(3); 71 this.valueTabPage.Size = new System.Drawing.Size(545, 421); 72 this.valueTabPage.TabIndex = 0; 73 this.valueTabPage.Text = "Value"; 74 this.valueTabPage.UseVisualStyleBackColor = true; 75 // 76 // valueViewHost 77 // 78 this.valueViewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 79 | System.Windows.Forms.AnchorStyles.Left) 80 | System.Windows.Forms.AnchorStyles.Right))); 81 this.valueViewHost.Caption = "Value"; 82 this.valueViewHost.Content = null; 83 this.valueViewHost.Enabled = false; 84 this.valueViewHost.Location = new System.Drawing.Point(3, 3); 85 this.valueViewHost.Name = "valueViewHost"; 86 this.valueViewHost.ReadOnly = false; 87 this.valueViewHost.Size = new System.Drawing.Size(539, 415); 88 this.valueViewHost.TabIndex = 0; 89 this.valueViewHost.ViewType = null; 90 // 91 // configurationtabPage 92 // 93 this.configurationtabPage.Controls.Add(this.configurationViewHost); 94 this.configurationtabPage.Location = new System.Drawing.Point(4, 22); 95 this.configurationtabPage.Name = "configurationtabPage"; 96 this.configurationtabPage.Padding = new System.Windows.Forms.Padding(3); 97 this.configurationtabPage.Size = new System.Drawing.Size(545, 421); 98 this.configurationtabPage.TabIndex = 1; 99 this.configurationtabPage.Text = "Configuration"; 100 this.configurationtabPage.UseVisualStyleBackColor = true; 101 // 102 // configurationViewHost 103 // 104 this.configurationViewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 105 | System.Windows.Forms.AnchorStyles.Left) 106 | System.Windows.Forms.AnchorStyles.Right))); 107 this.configurationViewHost.Caption = "Configuration"; 108 this.configurationViewHost.Content = null; 109 this.configurationViewHost.Enabled = false; 110 this.configurationViewHost.Location = new System.Drawing.Point(4, 4); 111 this.configurationViewHost.Name = "configurationViewHost"; 112 this.configurationViewHost.ReadOnly = false; 113 this.configurationViewHost.Size = new System.Drawing.Size(538, 414); 114 this.configurationViewHost.TabIndex = 0; 115 this.configurationViewHost.ViewType = null; 116 // 117 // childParameterTabPage 118 // 119 this.childParameterTabPage.Controls.Add(this.childParameterConfigurationListView); 120 this.childParameterTabPage.Location = new System.Drawing.Point(4, 22); 121 this.childParameterTabPage.Name = "childParameterTabPage"; 122 this.childParameterTabPage.Size = new System.Drawing.Size(545, 421); 123 this.childParameterTabPage.TabIndex = 2; 124 this.childParameterTabPage.Text = "Child Parameters"; 125 this.childParameterTabPage.UseVisualStyleBackColor = true; 126 // 127 // childParameterConfigurationListView 128 // 129 this.childParameterConfigurationListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 130 | System.Windows.Forms.AnchorStyles.Left) 131 | System.Windows.Forms.AnchorStyles.Right))); 132 this.childParameterConfigurationListView.Caption = "Parameter Configuration"; 133 this.childParameterConfigurationListView.Content = null; 134 this.childParameterConfigurationListView.Location = new System.Drawing.Point(4, 4); 135 this.childParameterConfigurationListView.Name = "childParameterConfigurationListView"; 136 this.childParameterConfigurationListView.ReadOnly = false; 137 this.childParameterConfigurationListView.Size = new System.Drawing.Size(538, 414); 138 this.childParameterConfigurationListView.TabIndex = 0; 54 139 // 55 140 // ParameterConfigurationView … … 57 142 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 58 143 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 59 this.Controls.Add(this. viewHost);144 this.Controls.Add(this.tabControl); 60 145 this.Controls.Add(this.optimizeCheckBox); 61 146 this.Name = "ParameterConfigurationView"; 62 this.Size = new System.Drawing.Size(729, 481); 147 this.Size = new System.Drawing.Size(556, 473); 148 this.tabControl.ResumeLayout(false); 149 this.valueTabPage.ResumeLayout(false); 150 this.configurationtabPage.ResumeLayout(false); 151 this.childParameterTabPage.ResumeLayout(false); 63 152 this.ResumeLayout(false); 64 153 this.PerformLayout(); … … 69 158 70 159 private System.Windows.Forms.CheckBox optimizeCheckBox; 71 private MainForm.WindowsForms.ViewHost viewHost; 160 private System.Windows.Forms.TabControl tabControl; 161 private System.Windows.Forms.TabPage valueTabPage; 162 private MainForm.WindowsForms.ViewHost valueViewHost; 163 private System.Windows.Forms.TabPage configurationtabPage; 164 private MainForm.WindowsForms.ViewHost configurationViewHost; 165 private System.Windows.Forms.TabPage childParameterTabPage; 166 private ParameterConfigurationListView childParameterConfigurationListView; 72 167 } 73 168 } -
branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationView.cs
r4525 r4830 10 10 using HeuristicLab.Core.Views; 11 11 using HeuristicLab.Core; 12 using HeuristicLab.Collections; 12 13 13 14 namespace HeuristicLab.Problems.MetaOptimization.Views { … … 16 17 /// </summary> 17 18 [View("ParameterConfiguration View")] 18 [Content(typeof(IParameterConfiguration), true)] 19 [Content(typeof(IParameterConfiguration), false)] 20 [Content(typeof(ParameterConfiguration), true)] 19 21 public partial class ParameterConfigurationView : ItemView { 20 22 /// <summary> … … 35 37 base.OnContentChanged(); 36 38 if (Content != null) { 37 viewHost.Content = Content.Parameter; 39 optimizeCheckBox.Checked = Content.OptimizationEnabled; 40 valueViewHost.ViewType = typeof(ValueView); 41 valueViewHost.Content = Content; 42 if (Content is IntValueParameterConfiguration) { 43 configurationViewHost.Content = ((IntValueParameterConfiguration)Content).Ranges; 44 } else { 45 configurationViewHost.Content = null; 46 } 47 48 childParameterConfigurationListView.Content = ((ParameterConfiguration)Content).ChildParameterConfigurations; 38 49 } else { 39 viewHost.Content = null; 50 valueViewHost.Content = null; 51 configurationViewHost.Content = null; 52 childParameterConfigurationListView.Content = null; 40 53 } 54 SetEnabledStateOfControls(); 55 } 56 57 protected override void RegisterContentEvents() { 58 base.RegisterContentEvents(); 59 Content.ChildParameterConfigurations.ItemsAdded += new CollectionItemsChangedEventHandler<IndexedItem<IParameterConfiguration>>(ChildParameterConfigurations_ItemsAdded); 60 Content.ChildParameterConfigurations.ItemsRemoved += new CollectionItemsChangedEventHandler<IndexedItem<IParameterConfiguration>>(ChildParameterConfigurations_ItemsRemoved); 61 } 62 protected override void DeregisterContentEvents() { 63 Content.ChildParameterConfigurations.ItemsAdded -= new CollectionItemsChangedEventHandler<IndexedItem<IParameterConfiguration>>(ChildParameterConfigurations_ItemsAdded); 64 Content.ChildParameterConfigurations.ItemsRemoved -= new CollectionItemsChangedEventHandler<IndexedItem<IParameterConfiguration>>(ChildParameterConfigurations_ItemsRemoved); 65 base.DeregisterContentEvents(); 66 } 67 68 void ChildParameterConfigurations_ItemsRemoved(object sender, Collections.CollectionItemsChangedEventArgs<Collections.IndexedItem<IParameterConfiguration>> e) { 69 SetEnabledStateOfControls(); 70 } 71 72 void ChildParameterConfigurations_ItemsAdded(object sender, Collections.CollectionItemsChangedEventArgs<Collections.IndexedItem<IParameterConfiguration>> e) { 73 SetEnabledStateOfControls(); 41 74 } 42 75 43 76 protected override void SetEnabledStateOfControls() { 44 77 base.SetEnabledStateOfControls(); 78 this.SuspendLayout(); 79 if (optimizeCheckBox.Checked) { 80 DisableTabPage(valueTabPage); 81 EnableTabPage(configurationtabPage); 82 if (Content.ChildParameterConfigurations.Count > 0) 83 EnableTabPage(childParameterTabPage); 84 } else { 85 DisableTabPage(configurationtabPage); 86 DisableTabPage(childParameterTabPage); 87 EnableTabPage(valueTabPage); 88 } 89 this.ResumeLayout(); 45 90 } 46 91 47 92 private void optimizeCheckBox_CheckedChanged(object sender, EventArgs e) { 93 Content.OptimizationEnabled = optimizeCheckBox.Checked; 94 SetEnabledStateOfControls(); 95 } 48 96 97 protected void EnableTabPage(TabPage tabPage) { 98 if (!tabControl.TabPages.Contains(tabPage)) { 99 tabControl.TabPages.Add(tabPage); 100 } 101 } 102 103 protected void DisableTabPage(TabPage tabPage) { 104 if (tabControl.TabPages.Contains(tabPage)) { 105 tabControl.TabPages.Remove(tabPage); 106 } 49 107 } 50 108 }
Note: See TracChangeset
for help on using the changeset viewer.