Code (csharp):
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 1; i < 9; i++)
{
MyControlArray.AddNewChkBox();
MyControlArray/.Top = 20 * i;
MyControlArray/.Left = 30;
}
for (int j = 1; j < 9; j++)
{
MyControlArray.AddNewChkBox();
MyControlArray[j].Top = 20 * j;
MyControlArray[j].Left = 100;
}
}
Ovde ti ne valja to shto u drugoj for petlji podeshavash Top i Left
vrednosti za prvih 9 chkBox-ova, umesto za drugih (j index ti ide od 1 do
8, umesto od 9 do 17 - to je druga kolona). Znachi mozda ovako da si
uradio:
Code (csharp):
for (int i = 0; i < 9; i++)
{
MyControlArray.AddNewChkBox();
MyControlArray/.Top = 20 * i+20;
MyControlArray/.Left = 30;
}
for (int j = 0; j < 9; j++)
{
MyControlArray.AddNewChkBox();
MyControlArray[j+9].Top = 20 * j;
MyControlArray[j+9].Left = 100;
}
Code:
for (int Index = 1; Index < 18; Index++)
{
if (Index > 9)
{
MyControlArray.AddNewChkBox();
MyControlArray[Index].Top = 20 * Index;
MyControlArray[Index].Left 200; }
else
{
MyControlArray.AddNewChkBox();
MyControlArray[Index].Top = 20 * Index;
MyControlArray[Index].Left = 25;
}
}
Ovde si se zeznuo u tome shto u if klauzuli(ako je tacan uslov, da je
Index > 9) stavio si da je .Top = 20 * Index . Trebalo bi da, ako si
povecao Left, tj. preshao u drugu kolonu, Top opet mnozish 20 sa 1,2,... a
ne sa 10,10,... znachi recimo ovako: .Top = 20*(Index%9);
Evo kako sam ja uradio sa izuzetkom shto nisam koristio posebnu klasu.
[code:csharp]
private void button1_Click(object sender, EventArgs e)
{
CheckBox[] myCheckBoxArray = new CheckBox[18];
for (int i = 0; i < 18; i++)
{
myCheckBoxArray[i] = new CheckBox();
myCheckBoxArray[i].Width = 30;
myCheckBoxArray[i].Left = (i / 9) * 70 + 30;
myCheckBoxArray[i].Top = (i % 9) * 20 + 20;
}
this.Controls.AddRange(myCheckBoxArray);
}
[code]
Proveri znachi indexe i vrednosti koje dobijash za Top kada mnozish
20*Index. Mislim da ti je tu jedina greshka.
--
Using Opera's revolutionary e-mail client:
http://www.opera.com/mail/