» »

[VB express edition] problem

[VB express edition] problem

mNeRo ::

v spodnjem delu kode mi v labelo13 izpise nek string... kako narediti, da mi bo ta string izpisalo v labelo po moji zelji? ( recimo: ko bo nek i=5, naj mi string ipise v labelo5 ali v neko labelo po moji zelji.

dim beseda as string

If Len(beseda) >= 25 Then
Label13.Text = beseda.Substring(0, 25)

End If

Microsoft ::

Po pravici povedano, mi ni jasno, kaj bi rad naredil?

narediti, da mi bo ta string izpisalo v labelo po moji zelji?

Kaki zelji?


by Miha
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr

mNeRo ::

se opravicujem...sem bil nejasen.

labele imajo stevilke: label1, label2.... mene zanima ce je ogoce narediti: label(i).text="nek string"
tako da bi lahko razlicne stringe usmerjal v labele glede na i-je!

kako bi ta koda zgledala?!

darkolord ::

ja, dej vsem isto ime, nastavi pa jim Index... tako dobiš array label

camx ::

Ustvari polje Label-ov... Samo jih boš mogu ročno (s kodo) pozicionirat in nastavit vse lastnosti.

Dim napisi(10) As Label
napisi(0) = New Label
napisi(0).Location = New Point(50, 100) 'lokacija (x,y)
napisi(0).Text = "text"


Tako nekako, če si boš kej pomagau.....

Zgodovina sprememb…

  • spremenilo: camx ()

cekr ::

V starejših verzijah (6.0 in prejšnje) je bilo možno indexsiranje gradnikov. Sedaj to ni več možno.
Sinclair ZX Spectrum [Zilog Z80A - 3.5 MHz, 48kB, dvojni kasetofon,
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]

urbecar ::

Nekej nahitro skropucanega v C#.

            int iskaniID=1; //iščemo textBox1
            foreach (Control ctrl in this.Controls)
            {
              if (textBox1.GetType() == ctrl.GetType())
                {if (ctrl.Name == "textBox" + iskaniID.ToString())
                    {ctrl.Text = "moj text";}
                }
            }
      

frudi ::

kar je urbecar napisal lepo deluje, problem je le, da moraš vsakokrat enumerirat skozi vse kontrole na formi. lepša rešitev je, da vse kontrole spraviš v neko zbirko in jih potem pobiraš ven z indeksom/ključem. najenostavnejša zbirka za ta primer se mi zdi hashtable, ker ponuja hitro iskanje po ključu (za katerega uporabiš ime textboxa), zaporedje elementov v zbirki pa ni pomembno.
torej, definiraš globalno spremenljivko:
  Hashtable TextBoxes;

nato v Page_Load even dodaš:
  TextBoxes = new Hashtable();
  foreach (Control control in this.Controls)
  {
    if (control.GetType() == typeof(TextBox))
    {
        TextBoxes.Add(control.Name, control);
    }
  }

textbox z indexom N iz zbirke dobiš z:
  (TextBox)TextBoxes["textBox" + index.ToString()];

castanje v TextBox je pomembno, ker hashtable vrača objekte tipa 'object'.

lahko pa namesto hashtabla uporabiš kako tipizirano zbirko, da ti ne bo treba vsakokrat objektov castat v TextBox. namesto hashtabla uporabiš recimo:
  SortedList<string, TextBox> TextBoxes;
  TextBoxes = new SortedList<string, TextBoxes>();

uporaba je ista kot v zgornjem primeru, le da tako definirana zbirka vrača objekte tipa 'TextBox' in ne object.

EDIT: teslo jaz, šele zdaj opazil, da uporabljaš VB.NET. če slučajno zgornje kode ne boš znal prevesti v VB, napiši, pa dodam še VB verzijo.
1ACDoHVj3wn7N4EMpGVU4YGLR9HTfkNhTd... in case I've written something useful :)

Zgodovina sprememb…

  • spremenilo: frudi ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

C#, TextBox in PopUp forma

Oddelek: Programiranje
61097 (991) MarCar
»

C# textbox polnjenje

Oddelek: Programiranje
71625 (1490) Mitja Bonča
»

vb.net: dynamic textbox

Oddelek: Programiranje
51172 (1062) saule
»

C# Program

Oddelek: Programiranje
393093 (2016) Spura
»

razložitev nekaterij elementov v visual studio 05

Oddelek: Programiranje
72101 (1906) darkolord

Več podobnih tem