Как я могу использовать пользовательский класс элемента управления, который наследуется от встроенного элемента управления в моей главной форме? - PullRequest
0 голосов
/ 17 апреля 2011

У меня есть класс mydatagridview, который наследуется от встроенного элемента управления DataGridView, как показано ниже:

public class mydatagridview : DataGridView 
{
    protected override bool ProcessDataGridViewKey(KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter) 
        {
            this.ProcessTabKey(e.KeyData);
            return true;
        }
        return base.ProcessDataGridViewKey(e);
    }

    protected override bool ProcessDialogKey(Keys keyData)
    {
        if (keyData == Keys.Enter) 
        {
            this.ProcessTabKey(keyData);
            return true;
        }
        return base.ProcessDialogKey(keyData);
    }
}

Теперь я хочу использовать его в своем основном классе:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
}

Я хочу использовать myDatagridview с Datagridview1: публичный частичный класс Form1: Form

Как я могу это сделать?

Ответы [ 3 ]

2 голосов
/ 17 апреля 2011

Вам необходимо создать экземпляр своего пользовательского класса управления, а затем добавить этот экземпляр в коллекцию Controls вашей формы. Например:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        // Create an instance of your custom control
        mydatagridview myDGV = new mydatagridview();

        // Add that instance to your form's Controls collection
        this.Controls.Add(myDGV);
    }
}

Конечно, вы можете сделать то же самое с Дизайнером. Он автоматически вставит код, очень похожий на приведенный выше, внутри метода InitializeComponent().

Если ваш настраиваемый элемент управления не отображается автоматически на панели инструментов после перестройки проекта, убедитесь, что у вас включено автоматическое заполнение панели инструментов :

  1. В меню «Инструменты» выберите «Параметры».
  2. Разверните категорию «Конструктор Windows Forms».
  3. Установите для свойства "AutoToolboxPopulate" значение True.

    Set the AutoToolboxPopulate to True in VS Options

1 голос
/ 17 апреля 2011

Если я правильно понимаю, и я не уверен в этом, вы можете просто использовать его как любой другой тип:

mydatagridview mydatagrid = new mydatagridview();
this.Controls.Add(mydatagrid);
0 голосов
/ 17 апреля 2011

Рядом с ответами, которые уже были даны, должна быть возможность перетаскивания и перетаскивания элемента управления из панели инструментов в форму.

Если вы создаете пользовательский элемент управления или пользовательский элемент управления и создаете свой проект, этот элемент управления должен отображаться на панели инструментов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...