我想在x * y矩阵中动态添加复选框。 我想到的最简单的方法是启动一个for循环,其中O(n²)。 我有2个文本框是矩阵的宽度和高度。 在我的例子中,我做了10x10;当我按下按钮时,它只会创建1复选框。 我第一次尝试直接添加复选框到面板,但我不知何故有一个NullReferenceException。现在我在一个List中填充for循环,然后在foreach循环中读出。在C运行时在循环中添加复选框for循环#
任何帮助,将不胜感激。
在此先感谢
m0ddixx
我试试这样:
namespace LED_Matrix_Control
{
public partial class Form1 : Form
{
private LedMatrix ledMatrix;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int width= Convert.ToInt32(breiteFeld.Text);
int height = Convert.ToInt32(hoeheFeld.Text);
List<CheckBox> ledchecks = new List<CheckBox>();
ledMatrix = new LedMatrix(breite, hoehe);
for(int x = 0; x < breite; x++)
{
for(int y = 0; y < hoehe; y++)
{
ledchecks.Add(addCheckBox(x, y));
}
}
foreach(CheckBox finalLedChk in ledchecks)
{
panel1.Controls.Add(finalLedChk);
}
}
private CheckBox addCheckBox(int x, int y)
{
CheckBox ledcheck = new CheckBox();
ledcheck.Location = new Point(x, y);
return ledcheck;
}
}
}
你有什么问题,这个代码?我希望得到帮助,我建议在你遇到问题时总是描述问题。顺便说一下,CheckBox的位置太紧。向X和Y添加乘数 – Steve
确定。问题是有一个复选框的复选矩阵的动态矩阵。显然这些LED可以打开或关闭。程序本身应该生成代码来创建基于关键帧的动画。但首先用户必须放入矩阵的宽度和高度,然后它应该在运行时生成x * y复选框。在我的情况下,它只会创建一个复选框。 – m0ddixx
将此行更改为:_ledcheck.Location = new Point(x * 20,y * 20); _您的复选框在那里,它们只是一个。 – Steve