Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Visulizzare bottone in colonna
lunedì 19 gennaio 2009 - 10.20
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
toniovigi
Profilo
| Expert
540
messaggi | Data Invio:
lun 19 gen 2009 - 10:20
Ciao Ragazzi, ho la necessità di visulizzare dei button in colonna,
ma non riesco a capire come settare il mio ciclo FOR,probabilmente ne dovrò usare 2,qualcuno puo darmi una mano??
la visulizzazione devono essere delle colonne
x x x
x x x
x x x
x x x
dove x è il mio bottone quindi button.setbound(x,y,widht,height) x e y devo settarle in modo tale che lui a un tot mi cambi colonna come setto il ciclo??
Grazieeee
Jeremy
Profilo
| Guru
1.527
messaggi | Data Invio:
lun 19 gen 2009 - 10:36
Grosso modo dovrebbe essere così....dagli una controllata perchè l'ho fatto al volo
Se ci fossero errori fatti sentire.
dim a as integer
me.SuspendLayout
FOR i as integer =0 to TotBottoni
dim button as new Button With {.Name="Button" & i.tostring}
dim Top as integer=0+(i*button.Height)
dim Left as integer=0+(a*button.Width)
button.left=left
button.top=top
me.control.add(button)
button.visible=true
if i=BottoniPerColonna then
a+=1
end if
Next
me.ResumeLayout
Si potrebbe ragionarci sopra un pò di più...ma grosso modo dovrebbe andare bene.
Ciao
toniovigi
Profilo
| Expert
540
messaggi | Data Invio:
lun 19 gen 2009 - 10:51
C#?
Qui al lavoro il sito del traduttore e bloccato!!!
Jeremy
Profilo
| Guru
1.527
messaggi | Data Invio:
lun 19 gen 2009 - 13:08
Con c# non ho molta dimestichezza, comunque il concetto è quello di creare un nuovo bottone ad ogni step dell'iterazione asseganndo la posizione con le proprietà Left e Top del button moltiplicandole per il numero del bottone che sta per essere creato.
suspendlayout e resumelayout servono per interrompere l'aggiornamento dei controlli sul form in modo da poterne disegnare degli altri(grosso modo).
Se la variabile i è uguale al numero massimo di bottoni per colonna, incremento un'altra variabile che fa si di poter impostare la proprietà Left dei nuovi bottoni per visualizzarli sulla seconda colonna
Facci sapere
Ciao
toniovigi
Profilo
| Expert
540
messaggi | Data Invio:
lun 19 gen 2009 - 13:29
si io ho gia una roba simile
for(i=0;i<1000;i++)
utente.SetBounds(x, y + (i * 50), 66, 50)
cosi mi mette un bottone sotto l'altro in colonna,io voglio creare + colonne tutto qua ma nn riesco mi sballa tutto!
Jeremy
Profilo
| Guru
1.527
messaggi | Data Invio:
lun 19 gen 2009 - 13:41
dim Left as integer=0+(a*button.Width)
...........................
if i=BottoniPerColonna then
a+=1
end if
Next
Devi tenere in considerazione questa parte di codice....che è fondamentale
Il valore della coordinata per spostare i controlli sulla colonna successiva, nel metodo SetBound, devi calcolarlo con un'altra variabile diversa da "i".
Quindi......quando i è uguale al valore massimo di bottoni per colonna, incrementi la variabile "a" ....è quella che moltiplica il valore iniziale della coordinata per spostare il controllo sulla seconda colonna.
Cosa vuol dire ti si sballa tutto???.....se posti il codice che hai scritto tu....cerchiamo di capire il perchè.
Poi dipende anche se i controlli devono essere disegnati tutti in solo momento oppure devi disegnarne uno per volta in funzione dello scatenarsi di un evento(perchè mi sembra di aver capito che il numero dei bottoni è uguale al numero di utenti.....o sbaglio?).
E gli eventi di ogni singolo bottone...come devi gestirli??.....Dovrai creare degli Handle a runtime....credo.
Facci sapere ...ciao
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !