Deerbeer-ovo drugo ponudjeno resenje je imalo donekle smisla. Kazem donekle, jer sam morao da promenim lokaciju kreiranja objekta lblStanje. Stvar je u tome da ja ustvari korisniku ostavljam mogucnost da sam kreira koliko hoce TexBox-ova na osnovu jedne predhodne forme (FormUpis) gde on definise granice i naziv analize koji se potom skladiste u bazi. Pozicija elemenata na drugoj formi (Form1) se automatski izracunavaju na osnovu predhodno upisane analize. Nakon zatvaranja te FormUpis otvara se forma Form1, koja je ustvari prazna (ustvari ima samo jedan button OK) a elementi na njoj se generisu kreiranjem objekata preko funkcije Form1_Load. Razmisljajuci skontao sam da ustvari lblStanje ne treba da kreiram u okviru Form1_Load jer je ona ustvari posledica upisa u TextBox pa sam odlucio da je kreiram i postavim uslove, na osnovu drugog ponudjenog koda deerbeer-a, u okviru funkcije txt_Leave. I zamislite proradilo je
Ali odmah se javio i problem

Najbolje je da problem objasnim preko primera. Npr., korisnik je kreirao 3 analize i upisao njihove granicne vrednosti, sto znaci da u Form1 se kreiraju i 3 TextBox-a za upis dobijenih vrednosti. Kada upisem vrednosti u sva tri TextBox-a on mi ispise lblStanje za sve tri vrednosti ispravno. Ali kada se vratim i pokusam vrednosti da korigujem (ako je bila prva vrednost LOW, onda neku vrednost koja je HIGH) onda se nista ne desava, to jest nema promene kod lblStanje.Text. Pracenjem realizacije funkcije txt_Leave video sam da on ustvari promene u TextBox-ovima ne primecuje jer pamti zadnju unetu vrednost.
Moje pitanje se svodi na to kako bi mogao da omogucim korekciju jednom unetih vrednosti i kako da omogucim da se te vrednosti upisane u TextBox-ove uskladiste u bazu?
Evo i koda:
Code:
clsFunc.odredjivanje_TotalRow("tblAnalizeBiohemije");
for (int i = 0; i <= clsVariables.sTotalRow; i++)
{
if (i != 0)
{
if (clsVariables.sAnaliza != "")
{
clsFunc.citanje_Podataka(i, "tblAnalizeBiohemije");
Label lbl = new Label();
lbl.AutoSize = true;
lbl.Location = new System.Drawing.Point(clsVariables.sXlabelID, clsVariables.sYlabelID);
lbl.Name = "labelID" + clsVariables.sID;
lbl.Size = new System.Drawing.Size(35, 13);
lbl.Text = clsVariables.sID + ".";
this.Controls.Add(lbl);
CheckBox ckb = new CheckBox();
ckb.AutoSize = true;
ckb.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
ckb.Location = new System.Drawing.Point(clsVariables.sXcheckBox, clsVariables.sYcheckBox);
ckb.Name = "checkBox" + clsVariables.sID;
ckb.Text = clsVariables.sAnaliza;
ckb.UseVisualStyleBackColor = true;
ckb.CheckedChanged += new System.EventHandler(this.ckb_CheckedChanged);
this.Controls.Add(ckb);
TextBox txt = new TextBox();
txt.Text = "";
txt.Enabled = false;
txt.Location = new System.Drawing.Point(clsVariables.sXtextBox, clsVariables.sYtextBox);
txt.Name = "textBox" + clsVariables.sID;
txt.Size = new System.Drawing.Size(100, 20);
txt.MouseLeave += new System.EventHandler(this.txt_Leave);
this.Controls.Add(txt);
}
}
}
}
private void txt_Leave(object sender, EventArgs e)
{
TextBox txt = (TextBox)sender;
string name = txt.Name;
string stringid = name.Substring("textBox".Length);
int id = int.Parse(stringid, System.Globalization.CultureInfo.InvariantCulture);
clsFunc.citanje_Podataka(id, "tblAnalizeBiohemije");
Label lblStanje = new Label();
lblStanje.AutoSize = true;
lblStanje.Location = new System.Drawing.Point(clsVariables.sXlabelStanje, clsVariables.sYlabelStanje);
lblStanje.Name = "labelStanje" + clsVariables.sID;
lblStanje.Size = new System.Drawing.Size(35, 13);
this.Controls.Add(lblStanje);
for (int i = 0; i <= id; i++)
{
if (txt.Name != "textBox" + i)
{ }
else
{
Control[] cs = Controls.Find("labelStanje" + i, true);
if (cs.Length < 0)
{ }
else
{
if (txt.Text == "")
{
MessageBox.Show("GRESKA!");
}
else
{
decimal Stanje = decimal.Parse(txt.Text, System.Globalization.CultureInfo.InvariantCulture);
if (Stanje > clsVariables.sGornja)
{
lblStanje.Text = "HIGH";
}
else
{
if (Stanje < clsVariables.sDonja)
{
lblStanje.Text = "LOW";
}
else
{
lblStanje.Enabled = false;
}
}
}
}
}
}
}