winforms — Как унаследовать от существующих элементов управления Windows Forms в C ++ / CLI с Designer

Мне нужен собственный класс DataGridView в C ++ / Cli в Visual Studio 2012, который можно использовать в Designer View.

Я создал пользователя clr по умолчанию, унаследованного от System :: Windows :: Forms :: UserControl, и изменил UserControl на DataGridView, но здесь он не работает в C ++. Это работает в C #. [1]

Ни коды с нуля не были признаны дизайнером. [2]

Похоже, я должен поместить DataGridView в класс, но мне нужно будет получить доступ к его членам, как grid-> view-> GetName .. вместо grid-> GetName .. сейчас. И это не будет шаблонизировано, как то, чем должен был быть CLR после всех этих странных синтаксисов.

[1] http://msdn.microsoft.com/en-us/library/7h62478z.aspx

[2] Добавление пользовательского элемента управления с помощью дизайнера форм Windows

0

Решение

Следуйте приведенным ниже инструкциям для Visual Studio 2010. Эти действия должны быть действительными и для Visual Studio 2012.

  1. Создать новый VisualC ++ -> CLR -> ClassLibrary Проект (например, CustomDataGridView)
  2. Добавить System.Windows.Forms ссылка в проект
  3. Измените содержание CustomDataGridView.h чтобы:

    #pragma once
    
    using namespace System;
    using namespace System::Windows::Forms;
    
    namespace CustomDataGridView
    {
    public ref class MyDataGridView : DataGridView
    {
    // TODO: You can include your custom behavior here.
    };
    }
    
  4. Скомпилируйте ваш проект
  5. Откройте / создайте проект с помощью формы и откройте эту форму
  6. Щелкните правой кнопкой мыши на панели инструментов и выберите Выберите товары …
  7. Найдите свой CustomDataGridView.dll и загрузить пользовательский элемент управления
  8. Теперь MyDataGridView должен быть указан в панели инструментов, вы можете поместить его в форму, перетащив&Капля
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]