2016-10-10 47 views
0

我正在流佈局面板中創建一個由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 ::數組類型的下標無效號碼」。

我也想在按鈕中添加控件。每當我點擊一個特定的按鈕,我希望它的數字正在顯示遞增值。

任何幫助,將不勝感激。另外,請讓我知道,如果我的起始代碼在某些方面不正確。謝謝!

回答

0

無效標這一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

相關問題