用于创建组件的通用表单

时间:2011-11-07 22:57:24

标签: winforms visual-c++ c++-cli

我正在尝试创建一个慷慨而快速的GUI中创建组件,我所做的代码如下,但我知道他没有做我想要的,我也不知道我该怎么做。

#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>

using namespace System;
using namespace System::Drawing;
using namespace System::Windows::Forms;

public ref class GUI : public Form
{
private:
    int x, y;
    String^ text;
    Button^ btm;

public:
    GUI(int _x, int _y, String^ caption)
    {
        x = _x;
        y = _y;
        text = caption;
        init_btm();
    }
    void init_btm()
    {
        btm = gcnew Button();
        btm->Location = Point(x, y);
        btm->Text = text;
        Controls->Add(btm);
    }
};

int main(array<System::String ^> ^args)
{
    Application::Run(gcnew GUI(20,20,"Ola mundo"));
    return 0;
}

我正试图创造这样的东西......

而是一种动态方式来创建组件并向表单添加组件 好吧,我要做的是创建一个我可以访问它的类,并创建多个按钮,这个类,在Form上添加这些按钮可能是这样的:

ADD_BTM^ btm;
btm->Add(20,20,"Hello 1");
btm->Add(20,20,"Hello 2");

您也可能想知道,为什么我没有“设计”我的界面,我正在学习C ++ / CLI,而我正在尝试创建这个程序,只是为了学习。 我很感激帮助。

1 个答案:

答案 0 :(得分:1)

您已经知道如何向表单添加新按钮,您只需要向方法添加参数然后重复调用它:

public的{​​{1}}部分:

GUI

void AddButton(int x, int y, String^ caption) { auto button = gcnew Button(); button->Location = Point(x, y); button->Text = caption; Controls->Add(button); }

main

(代码使用C ++ 11中的auto form = gcnew GUI(); form->AddButton(20, 20, "Hello 1"); form->AddButton(40, 40, "Hello 2"); Application::Run(form); 。如果你不使用VS 2010,只需用实际类型替换它们。)