C # Изменить вкладку по умолчанию в TabControl с помощью пользовательской вкладки - PullRequest
0 голосов
/ 10 октября 2018

Я создал пользовательский TabControl и пользовательский TabPage, как показано ниже:

Пользовательский TabControl код:

public class MyCustomTabControl : TabControl
{
   //Some Custom Properties

   public MyCustomTabControl () : base()
    {
        base.Width = 200;
        base.Height = 100;

    }
}

Пользовательский TabPage:

public class MyCustomTabPage : TabPage
{
    //Some Custom Properties

    public MyCustomTabPage() : base()
    {                     
        this.BackColor = System.Drawing.Color.Transparent;
    }
}

Как мне сделать так, чтобы при добавлении в форму моего пользовательского элемента управления MyCustomTabControl добавлялся пользовательский элемент TabPage с именем MyCustomTabPage.В настоящее время добавляется TabPage из windows.

1 Ответ

0 голосов
/ 10 октября 2018

Вам нужно сделать несколько шагов, сначала определить класс, например, MyCustomTabCollection и реализовать все методы Three Interfaces для вашего MyCustomTabCollection класса, затем объявить экземпляр MyCustomTabCollection в вашем MyCustomTabControl как свойство public.

Реализация интерфейсов

public class MyCustomTabPageCollection : IList, ICollection, IEnumerable
{
    // implement all three interfaces
}

Реализация всех методов

public object this[int index] { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }

public bool IsReadOnly => throw new NotImplementedException();

public bool IsFixedSize => throw new NotImplementedException();

public int Count => throw new NotImplementedException();

public object SyncRoot => throw new NotImplementedException();

public bool IsSynchronized => throw new NotImplementedException();

public int Add(object value)
{
    throw new NotImplementedException();
}

public void Clear()
{
    throw new NotImplementedException();
}

public bool Contains(object value)
{
    throw new NotImplementedException();
}

public void CopyTo(Array array, int index)
{
    throw new NotImplementedException();
}

public IEnumerator GetEnumerator()
{
    throw new NotImplementedException();
}

public int IndexOf(object value)
{
    throw new NotImplementedException();
}

public void Insert(int index, object value)
{
    throw new NotImplementedException();
}

public void Remove(object value)
{
    throw new NotImplementedException();
}

public void RemoveAt(int index)
{
    throw new NotImplementedException();
}

Объявите свою коллекцию CustomTabPageCollection

public class MyCustomTab : TabControl
{
    public MyCustomTabPageCollection TabPages { get; set; }

    public MyCustomTab() : base()
    {
        base.Width = 200;
        base.Height = 100;

    }
}

Если проблема еще возникла, сообщите мне.

...