从基本 .NET 动态添加控件



有一种方法可以从代码向WinForm添加控件。它相当简单,例如:

Button ^btn = gcnew Button;
btn->Size.Width = 70;
btn->Size.Height = 30;
btn->Text = "test button";
this->Controls->Add(btn);

我们有一个按钮。但是,当有很多控件和大量参数时,代码就会变得过于庞大。

我曾经使用过一个具有良好功能的IDE:您可以在普通设计器中创建任何类型的控件,并为它们设置任何首选项和方法,但它们存储在一个特殊的库中,您可以在代码中连接该库并从中获取任何预先处理的控件。

Visual Studio中有这样的东西吗?

经过一段时间的思考,并感谢谢尔盖·谢夫琴科的建议,我设法创造了与我想要的有点相似的东西。 创建用户控件或只是另一种形式没有太大区别。所以我尝试了两种方式。

所以我创建了另一个表单(或UserControl - 相同的东西),称为"my_controls_form.h">,其中包含多个控件。重点是公开这些控件,以便您可以从其他窗体访问它们。

当设计师创建它们时,默认情况下它会像这样设置:

private: System::Windows::Forms::Button^ my_button_btn;
private: System::Windows::Forms::Label^ my_label_lbl;

所以我将私有更改为公共,将这个新的表单标题包含在主表单.cpp(#include "my_controls_form.h")中,然后将它们添加到我的主表单中,如下所示:

my_controls_form ^frm = gcnew my_controls_form;
Button ^btn = frm->my_button_btn;
Label ^lbl = frm->my_label_lbl;
btn->Name = "__my_button";
btn->Location = Point(0,70);
lbl->Name = "__my_lalbel";
lbl->Location = Point(70,70);
this->Controls->Add(btn);
this->Controls->Add(lbl);

我仍然对这种方式有些怀疑。例如,这些控件的所有方法都编写在另一个类 (窗体) 中。 并且多次插入控件时出现问题...知道如何插入几个相同的控件吗?还有什么可能出错

最新更新