Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

C# Kako kreirati dogadjaj za dinamicki kreirane kontrole

  • 1 odgovor
  • 2.770 pregleda

Najnovija ↓

C# Kako kreirati dogadjaj za dinamicki kreirane kontrole 02.08.2008. u 12:21 · pre 222 meseca #1
Ovim kodom dinamicki kreiram kontrole:

Code:

        void CreateTxt(int MAX)
        {
            int i;
            TextBox[] t = new TextBox[MAX];
            int tTop;
            int tLeft;

            tTop = 50;
            tLeft = 50;

            for (i = 0; i < MAX; i++)
            {
                t[i] = new TextBox();
                
                t[i].Location = new Point(tLeft, tTop);
                
                t[i].TabIndex = i;
                t[i].Size = new Size(100, 20);

//                t[i].Validating += new CancelEventHandler(Form1_Validating);
                Controls.Add(t[i]);
                
                tTop = tTop + 30;
//              tLeft = tLeft;
            }

        }


Pokusavao sam i nisam uspio da napravim dogadjaj validating za ove kontrole. Treba mi da kad unosim vrijednosti i napustam textBox da mi se pozove metoda validateing.
Potpis
SELECT * FROM หน่วยงานหลัก WHERE ยสันติ LIKE 'โดย%'
Re: C# Kako kreirati dogadjaj za dinamicki kreirane kontrole 02.08.2008. u 13:42 · pre 222 meseca #2
Prvo, pobrini se da procedura koja radi validaciju ISKLJUČIVO radi sa prosleđenim argumentima A NE sa globalnim imenima:

Code:

private void textBox1_Validating(object sender, CancelEventArgs e)
{
    if(sender is TextBox)
    {
        TextBox currControl = sender as TextBox;
        
        if(currControl.Text.Trim().ToLowerInvariant().StartsWith("a"))
        {
            // Ako tekst počinje sa "a", nema izlaska iz kontrole
            e.Cancel = true;
        }
    }
}


Sad, sve radi kao što je i očekivano:

Code:

void CreateTxt(int MAX)
{
  int i;
  TextBox[] t = new TextBox[MAX];
  int tTop;
  int tLeft;

  tTop = 50;
  tLeft = 50;

  for (i = 0; i < MAX; i++)
  {
      t[i] = new TextBox();
      t[i].Location = new Point(tLeft, tTop);
      t[i].TabIndex = i;
      t[i].Size = new Size(100, 20);

      t[i].Validating += textBox1_Validating;
      Controls.Add(t[i]);
      tTop = tTop + 30;
  }
}
Potpis
http://www.vesic.org | Blog: http://www.vesic.org/blog | Programming:
http://www.vesic.org/english/blog
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme