gpt4 book ai didi

c++ - 如何使用 Designer 在 C++/CLI 中继承现有 Windows 窗体控件

转载 作者:行者123 更新时间:2023-11-28 07:44:44 31 4
gpt4 key购买 nike

我需要在 visual studio 2012 中使用 c++/cli 编写的自定义 DataGridView 类,它可以在设计器 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] Adding a user control using Windows Form designer

最佳答案

按照以下步骤操作 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 应该列在工具箱中,您可以通过拖放将其放到窗体上

关于c++ - 如何使用 Designer 在 C++/CLI 中继承现有 Windows 窗体控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15109356/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com