如何使用控件在 C++ 的流布局面板中创建按钮数组
How to create an array of buttons in a Flow Layout Panel in C++ with controls
我正在制作一个由 Flow 布局面板中的 9x9 按钮组成的网格框。
我了解到 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
}
}
}
不过,我遇到了一个错误 "invalid number of subscripts for this cli::array type"。
我还想在按钮中添加控件。每当我点击一个特定的按钮时,我希望它在显示的数字上有一个递增的值。
如有任何帮助,我们将不胜感激。另外,如果我的起始代码在某些方面不正确,请告诉我。谢谢!
invalid number of subscripts for this cli::array type
matrix[oucounter][incounter]
你所拥有的是访问两个数组,一个外部数组然后一个内部数组,但你声明的是一个二维数组。为此,语法是:
matrix[oucounter, incounter]
如果要在 UI 上显示这些,您需要先 create Button 对象。
matrix[oucounter, incounter] = gcnew Button();
我不是 WinForms 专家,但我相信将按钮插入表单的标准方法不是设置按钮的父级,而是 add the button to the list of the form's controls。
this->Controls->Add(matrix[oucounter, incounter]);
我正在制作一个由 Flow 布局面板中的 9x9 按钮组成的网格框。
我了解到 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
}
}
}
不过,我遇到了一个错误 "invalid number of subscripts for this cli::array type"。
我还想在按钮中添加控件。每当我点击一个特定的按钮时,我希望它在显示的数字上有一个递增的值。
如有任何帮助,我们将不胜感激。另外,如果我的起始代码在某些方面不正确,请告诉我。谢谢!
invalid number of subscripts for this cli::array type
matrix[oucounter][incounter]
你所拥有的是访问两个数组,一个外部数组然后一个内部数组,但你声明的是一个二维数组。为此,语法是:
matrix[oucounter, incounter]
如果要在 UI 上显示这些,您需要先 create Button 对象。
matrix[oucounter, incounter] = gcnew Button();
我不是 WinForms 专家,但我相信将按钮插入表单的标准方法不是设置按钮的父级,而是 add the button to the list of the form's controls。
this->Controls->Add(matrix[oucounter, incounter]);