Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Impozite pe proprietati de anul v...

teava rezistenta panou apa calda

Acces in Curte din Drum National

Sub mobila de bucatarie si sub fr...
 Rezultat RMN

Numar circuite IPAT si prindere t...

Pareri brgimportchina.ro - teapa ...

Lucruri inaintea vremurilor lor
 Discuții despre TVR Sport HD

Cost abonament clinica privata

Tremura toata, dar nu de la ro...

Renault Android
 Recomandare bicicleta e-bike 20&#...

Bing-Content removal tool

Nu pot accesa monitorulsv.ro de l...

Cum sa elimini urmele de acnee?
 

Controll Collection

- - - - -
  • Please log in to reply
13 replies to this topic

#1
cristi_ursu

cristi_ursu

    New Member

  • Grup: Members
  • Posts: 19
  • Înscris: 05.12.2007
Pls help,
Am un form cu 7 labels,4 butons si 3 text boxes.Toate sunt invizibile.
As vrea acum prin metoda "for each control In Me.Controls"
sau prin oricare alta metoda sa pot face vizibile  de ex, 3 lables si 2 butoane si un textbox.
Multumesc anticipat.

#2
macaz

macaz

    Junior Member

  • Grup: Members
  • Posts: 108
  • Înscris: 14.06.2007
Daca cunosti numele controalelor ce te opreste sa le pui proprietatea visible pe true?

#3
cristi_ursu

cristi_ursu

    New Member

  • Grup: Members
  • Posts: 19
  • Înscris: 05.12.2007

View Postmacaz, on 29th June 2011, 05:00, said:

Daca cunosti numele controalelor ce te opreste sa le pui proprietatea visible pe true?
As vrea sa folosesc in acest form mult mai multe controale si anume, cu un buton sa pot sa pornesc alte labels ,butoane sau text boxuri.

#4
macaz

macaz

    Junior Member

  • Grup: Members
  • Posts: 108
  • Înscris: 14.06.2007
Pai si ce, te pomenesti ca ai vreo cateva sute de controale si e greu sa scrii pentru fiecare: control.visible=True, sau tu vrei dintr-un foc sa le pui pe toate pe visible?

#5
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,383
  • Înscris: 10.08.2005

View Postcristi_ursu, on 28th June 2011, 21:52, said:

As vrea sa folosesc in acest form mult mai multe controale si anume, cu un buton sa pot sa pornesc alte labels ,butoane sau text boxuri.
cu atat mai mult, scrii pentru fiecare, dupa caz

#6
cristi_ursu

cristi_ursu

    New Member

  • Grup: Members
  • Posts: 19
  • Înscris: 05.12.2007

View Postmacaz, on 29th June 2011, 06:05, said:

Pai si ce, te pomenesti ca ai vreo cateva sute de controale si e greu sa scrii pentru fiecare: control.visible=True, sau tu vrei dintr-un foc sa le pui pe toate pe visible?
Asa e am aproximativ 68 de controale intr-un form si trebuie sa le grupez.e fff mult de lucru pt. a le face una cate una.
De ex. as vrea ca un buton sa actioneze 8 controale un altul a2 si asa mai departe.

#7
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,383
  • Înscris: 10.08.2005
cine a spus ca programarea este usoara si nu necesita munca?

pune-le in frame-uri.

Quote

as vrea ca un buton sa actioneze 8 controale un altul a2 si asa mai departe.
cu atat mai mult trebuie sa lucrezi cate un control pe care dai click si sa-i spui ce sa faca .visible = [BOOLEAN]

Edited by MarianG, 02 July 2011 - 19:45.


#8
macaz

macaz

    Junior Member

  • Grup: Members
  • Posts: 108
  • Înscris: 14.06.2007

View PostMarianG, on 2nd July 2011, 20:42, said:

pune-le in frame-uri.
evident este cea mai buna solutie, poate enumera direct pe container sau schimba starea de visible pe container si atunci rezolva cu logica pe care o vrea el. Posibil sa nu poata face asta ( controale dispersate pe form, etc.)  si atunci va trebui ori sa scrie kilometri de cod pentru fiecare control ori sa faca niste liste cu controalele care vor trebui activate/dezactivate pe diversele stari.

Presupun ca initiatorul topicului lucreaza in VB.NET

Personal propun un hashtable cu intrari pentru fiecare stare logica, urmand sa returneze o matrice cu controalele care vor fi vizibile in secventa respectiva.
Dupa care enumerand toate intrarile in hashtable, si avand un index care determina starea logica a controalelor componente, poate activa/dezactiva dupa necesitate.

Pare greu dar in realitate este destul de simplu si rapid.

Edited by macaz, 02 July 2011 - 20:51.


#9
cristi_ursu

cristi_ursu

    New Member

  • Grup: Members
  • Posts: 19
  • Înscris: 05.12.2007

View Postmacaz, on 3rd July 2011, 05:18, said:

evident este cea mai buna solutie, poate enumera direct pe container sau schimba starea de visible pe container si atunci rezolva cu logica pe care o vrea el. Posibil sa nu poata face asta ( controale dispersate pe form, etc.)  si atunci va trebui ori sa scrie kilometri de cod pentru fiecare control ori sa faca niste liste cu controalele care vor trebui activate/dezactivate pe diversele stari.

Presupun ca initiatorul topicului lucreaza in VB.NET

Personal propun un hashtable cu intrari pentru fiecare stare logica, urmand sa returneze o matrice cu controalele care vor fi vizibile in secventa respectiva.
Dupa care enumerand toate intrarile in hashtable, si avand un index care determina starea logica a controalelor componente, poate activa/dezactiva dupa necesitate.

Pare greu dar in realitate este destul de simplu si rapid.


Te rog da-mi o idee cum pot sa incep asa ceva.(despre ce index e vorba?)

#10
cristi_ursu

cristi_ursu

    New Member

  • Grup: Members
  • Posts: 19
  • Înscris: 05.12.2007

View Postcristi_ursu, on 9th July 2011, 18:57, said:

Te rog da-mi o idee cum pot sa incep asa ceva.(despre ce index e vorba?)
Lucrez cu vb 2010 nu exista index.

#11
macaz

macaz

    Junior Member

  • Grup: Members
  • Posts: 108
  • Înscris: 14.06.2007
Ai posibilitatea sa asezi controalele pe grupe? de ex. pui un panel pe form iar in acel panel pui toate controalele care te intereseaza a fi vizibile/invizibile apoi alt panel cu alta grupa de controale si tot asa.
Si faci panelx.visible=false/true si devine vizibila/invizibila toata grupa aia de controale. Eventual pune un screenshot cu fereastra in cauza sa vedem si noi despre ce este vorba.

Edited by macaz, 09 July 2011 - 13:19.


#12
cristi_ursu

cristi_ursu

    New Member

  • Grup: Members
  • Posts: 19
  • Înscris: 05.12.2007

View Postmacaz, on 9th July 2011, 21:46, said:

Ai posibilitatea sa asezi controalele pe grupe? de ex. pui un panel pe form iar in acel panel pui toate controalele care te intereseaza a fi vizibile/invizibile apoi alt panel cu alta grupa de controale si tot asa.
Si faci panelx.visible=false/true si devine vizibila/invizibila toata grupa aia de controale. Eventual pune un screenshot cu fereastra in cauza sa vedem si noi despre ce este vorba.
Partea rea este ca ,controalele sunt dispersate pe intreg formul.
Am mai incercat sa folosesc metoda

For Each ctl In Me.Controls
            If TypeOf ctl Is Button Then
                ctl.Visible = True
            End If
        Next
dar din pacate nu pot sa aleg controalele pe care vreau sa le folosesc.

#13
macaz

macaz

    Junior Member

  • Grup: Members
  • Posts: 108
  • Înscris: 14.06.2007
Ok, o sa-ti arat doua metode. Prima se bazeaza pe o lista cu grupe de controale, a doua se bazeaza pe un marcaj al fiecarui control.

Metoda 1.

Declari global:
Private list As New Hashtable
In form_load initializezi lista:
		list.Add(0, {TextBox1, TextBox2, TextBox3, TextBox4, TextBox5, TextBox6})
		list.Add(1, {TextBox7, TextBox8, TextBox9, TextBox10, TextBox11, TextBox12})
		list.Add(2, {TextBox13, TextBox14, TextBox15, TextBox16, TextBox17, TextBox18})
		list.Add(3, {TextBox19, TextBox20, TextBox21, TextBox22, TextBox23, TextBox24})
		list.Add(4, {TextBox25, TextBox26, TextBox27, TextBox28, TextBox29, TextBox30})
		list.Add(5, {TextBox31, TextBox32, TextBox33, TextBox34, TextBox35, TextBox36})
		list.Add(6, {TextBox37, TextBox38, TextBox39, TextBox40, TextBox41, TextBox42})
		list.Add(7, {TextBox43, TextBox44, TextBox45, TextBox46, TextBox47, TextBox48})
aici adaptezi dupa nevoile tale, eu am pus 8 grupe(0-7) de cate 6 controale, tu pui cate grupe vrei si cu numele controalelor tale(o grupa poate contine un numar variabil de controale)

Adaugi in cod urmatoarea procedura:
   Private Sub Enable(ByVal index As Integer)
		For i As Integer = 0 To list.Count - 1
			For Each c As Control In list(i)
				c.Visible = (i = index)
			Next
		Next
	End Sub
procedura asta primeste ca argument un indicator privind grupa de controale care va trebui sa fie vizibila, itereaza lista de controale, pune pe vizibil grupa corespunzatoare indexului primit iar pe celelalte le pune pe invizibil.

In cod, unde ai nevoie, apelezi procedura astfel:
Enable(2)'pune pe vizibil grupa nr.2

Metoda 2.

Renunti la acea lista si adaugi fiecarui control un marcaj. Marcajul consta in atribuirea unei valori numerice proprietatiii Tag al fiecarui control (te uiti in proprietatile fiecarui control si la Tag  pui aceiasi valoare numerica ca sa le grupezi).

Procedura se modifica putin:
 Private Sub Enable(ByVal index As Integer)
		For Each c As Control In Me.Controls
			If c.Tag IsNot Nothing Then c.Visible = (CInt(c.Tag) = index)
		Next
	End Sub
Procedura o apelezi ca cea de mai sus. Face acelasi lucru numai ca enumera toate controalele din form si daca gaseste o valoare numerica in proprietatea Tag atunci vede pe ce grupa este si activeaza/dezactiveaza in consecinta.

Succes!

Edited by macaz, 09 July 2011 - 14:44.


#14
cristi_ursu

cristi_ursu

    New Member

  • Grup: Members
  • Posts: 19
  • Înscris: 05.12.2007

View Postmacaz, on 9th July 2011, 23:04, said:

Ok, o sa-ti arat doua metode. Prima se bazeaza pe o lista cu grupe de controale, a doua se bazeaza pe un marcaj al fiecarui control.

Metoda 1.

Declari global:
Private list As New Hashtable
In form_load initializezi lista:
		list.Add(0, {TextBox1, TextBox2, TextBox3, TextBox4, TextBox5, TextBox6})
		list.Add(1, {TextBox7, TextBox8, TextBox9, TextBox10, TextBox11, TextBox12})
		list.Add(2, {TextBox13, TextBox14, TextBox15, TextBox16, TextBox17, TextBox18})
		list.Add(3, {TextBox19, TextBox20, TextBox21, TextBox22, TextBox23, TextBox24})
		list.Add(4, {TextBox25, TextBox26, TextBox27, TextBox28, TextBox29, TextBox30})
		list.Add(5, {TextBox31, TextBox32, TextBox33, TextBox34, TextBox35, TextBox36})
		list.Add(6, {TextBox37, TextBox38, TextBox39, TextBox40, TextBox41, TextBox42})
		list.Add(7, {TextBox43, TextBox44, TextBox45, TextBox46, TextBox47, TextBox48})
aici adaptezi dupa nevoile tale, eu am pus 8 grupe(0-7) de cate 6 controale, tu pui cate grupe vrei si cu numele controalelor tale(o grupa poate contine un numar variabil de controale)

Adaugi in cod urmatoarea procedura:
   Private Sub Enable(ByVal index As Integer)
		For i As Integer = 0 To list.Count - 1
			For Each c As Control In list(i)
				c.Visible = (i = index)
			Next
		Next
	End Sub
procedura asta primeste ca argument un indicator privind grupa de controale care va trebui sa fie vizibila, itereaza lista de controale, pune pe vizibil grupa corespunzatoare indexului primit iar pe celelalte le pune pe invizibil.

In cod, unde ai nevoie, apelezi procedura astfel:
Enable(2)'pune pe vizibil grupa nr.2

Metoda 2.

Renunti la acea lista si adaugi fiecarui control un marcaj. Marcajul consta in atribuirea unei valori numerice proprietatiii Tag al fiecarui control (te uiti in proprietatile fiecarui control si la Tag  pui aceiasi valoare numerica ca sa le grupezi).

Procedura se modifica putin:
 Private Sub Enable(ByVal index As Integer)
		For Each c As Control In Me.Controls
			If c.Tag IsNot Nothing Then c.Visible = (CInt(c.Tag) = index)
		Next
	End Sub
Procedura o apelezi ca cea de mai sus. Face acelasi lucru numai ca enumera toate controalele din form si daca gaseste o valoare numerica in proprietatea Tag atunci vede pe ce grupa este si activeaza/dezactiveaza in consecinta.

Succes!
Suuper merge :)
Multumesc mult .

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate