如何在C++中使用控件在流布局面板中创建按钮阵列

问题描述:

我正在流布局面板中创建一个由9x9按钮组成的网格框。如何在C++中使用控件在流布局面板中创建按钮阵列

我知道Flow布局面板可以自动排列和自动调整我将要添加的按钮的大小。我还了解到,我可以数字这段代码

cli::array<Button^, 2>^ matrix = gcnew cli::array<Button^, 2>(9, 9); 

这将创建一个由9x9的元素按钮的二维数组创建按钮的数组,但我要问我怎么在显示它接口?

我有一些想法这样

private: System::Void Area_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) 
{ 
//"Area" is the name of the Flow layout Panel 

cli::array<Button^, 2>^ matrix = gcnew cli::array<Button^, 2>(9, 9); 

for (int oucounter = 0; oucounter < 9; oucounter++) 
{ 
    for (int incounter = 0; incounter < 9; incounter++) 
    { 
     matrix[oucounter][incounter]->Parent = this; //error 
     matrix[oucounter][incounter]->Text = "0"; //error 
    } 
} 
} 

虽然,我有一个错误“此CLI ::数组类型的下标无效号码”。

我也想在按钮中添加控件。每当我点击一个特定的按钮,我希望它的数字正在显示递增值。

任何帮助,将不胜感激。另外,请让我知道,如果我的起始代码在某些方面不正确。谢谢!

无效标这一CLI ::数组类型的数量

matrix[oucounter][incounter] 

你有什么就有机会获得两个数组,外数组,那么内部数组,但你已经宣布的是一个单个2D阵列。为此,语法是:

matrix[oucounter, incounter] 

如果你想在UI上显示这些,你需要先create按钮对象。

matrix[oucounter, incounter] = gcnew Button(); 

我不是一个WinForms专家,但我认为,标准的方式插入按钮变成一种形式,不是宁可add按钮设置按钮的父,但的列表表格的controls

this->Controls->Add(matrix[oucounter, incounter]); 
+0

我能与你纠正语法创建一个新的按钮,但没有在'“这 - > CHILDREN->添加(矩阵[oucounter,incounter]);”一个错误'“,这是* *“CppWinForm1 :: MyForm”类没有成员“Children”**。我认为这就是为什么我不能将按钮放在流布局面板中的问题。 – Zirc

+0

我的错别字,请参阅更正。 –

+0

代码现在正在工作,但该按钮不在流布局面板中,使按钮位于相同的位置。请参阅[图片](https://drive.google.com/open?id=0B1Dv8zquYx6BaXE0aG94Ny0zdGM) – Zirc