File: System\Windows\Forms\Design\TabPageCollectionEditor.cs
Web Access
Project: src\src\System.Windows.Forms.Design\src\System.Windows.Forms.Design.csproj (System.Windows.Forms.Design)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using System.ComponentModel.Design;
 
namespace System.Windows.Forms.Design;
 
/// <summary>
///  Collection editor for <see cref="TabControl.TabPageCollection"/>.
///  Allows a single level of <see cref="ToolStripItem"/> children to be designed.
/// </summary>
internal class TabPageCollectionEditor : CollectionEditor
{
    public TabPageCollectionEditor()
        : base(typeof(TabControl.TabPageCollection))
    {
    }
 
    /// <summary>
    ///  Sets the specified collection to have the specified array of items.
    /// </summary>
    protected override object? SetItems(object? editValue, object[]? value)
    {
        var tabControl = Context?.Instance as TabControl;
        tabControl?.SuspendLayout();
 
        object? retValue = base.SetItems(editValue, value);
 
        tabControl?.ResumeLayout();
 
        return retValue;
    }
 
    protected override object CreateInstance(Type itemType)
    {
        object instance = base.CreateInstance(itemType);
 
        TabPage tabPage = (TabPage)instance;
        tabPage.UseVisualStyleBackColor = true;
 
        return tabPage;
    }
}