有一种方法可以从代码中向WinForm添加控件。它很简单,例如:
Button ^btn = gcnew Button;
btn->Size.Width = 70;
btn->Size.Height = 30;
btn->Text = "test button";
this->Controls->Add(btn);
我们有一个按钮。但是当有很多控件和大量参数时,代码变得太大了。
我曾经使用过具有一个很好功能的IDE:您可以在普通设计器中创建任何类型的控件并为它们设置任何首选项和方法,但它们存储在一个特殊的基础中,您可以在代码中连接并获取任何预先控制的控制权。
Visual Studio中有这样的东西吗?
答案 0 :(得分:0)
经过一段时间的思考并感谢Sergey Schevchenko建议,我设法创造了类似于我想要的东西。 创建UserControl或只是另一种形式没有太大的区别。所以我尝试了两种方式。
所以我用另外几个控件创建了另一个名为“my_controls_form.h”的表单(或UserControl - 同样的东西)。主要的一点是使这些控件公开,以便您可以从其他表单中获取它们。
当设计师创建它们时,它默认设置如下:
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);
我仍然对这种方式有所怀疑。例如,这些控件的所有方法都是用另一个类(表单)编写的。 多次插入控制有问题...任何想法如何插入几个相同的控件? 还有什么可能出错?