1

我需要 Visual Studio 2012 中的 c++/cli 中的自定义 DataGridView 类,可以在设计器视图中使用。

我创建了一个从 System::Windows::Forms::UserControl 继承的默认 clr 用户,并将 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 窗体设计器添加用户控件

4

1 回答 1

2

请按照以下适用于 Visual Studio 2010 的步骤操作。这些步骤对于 Visual Studio 2012 也应该有效。

  1. 创建一个新的VisualC++ -> CLR -> ClassLibrary Project (eg 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应该在 ToolBox 中列出,您可以通过拖放将其放到表单上
于 2013-03-04T20:55:53.407 回答