x * y行列にチェックボックスを動的に追加したい。 forループを開始するために私の心に来た最も簡単な方法O(n²)。 私は、マトリックスの幅と高さの2つのテキストボックスを持っています。 私の例では10x10でした。ボタンを押すと、チェックボックスが1つだけ作成されます。 まずパネルにチェックボックスを直接追加しようとしましたが、何とかNullReferenceExceptionが発生しました。今私は、forループを塗りつぶし、後でforeachループで読み込まれるList上にあります。ランタイム時にC用の四角形内のチェックボックスを追加する
ご協力いただければ幸いです。事前に
おかげで、この上
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
OK。問題は、マトリックスを複製するためのチェックボックスの動的マトリックスを持つことです。明らかに、これらのLEDは点灯または消灯することができます。プログラム自体は、キーフレームに基づいてアニメーションを作成するためのコードを生成する必要があります。最初にユーザーはその行列の幅と高さを入れなければならず、実行時にx * yチェックボックスが生成されるはずです。私の場合、チェックボックスは1つだけ作成されます。 – m0ddixx
この行を次のように変更してください:_ledcheck.Location = new Point(x * 20、y * 20); _チェックボックスはあります。 – Steve