Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - tanti pulsanti a runtime vb.net
Forum - C# / VB.NET - tanti pulsanti a runtime vb.net

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
gianluca (Normal User)
Pro


Messaggi: 103
Iscritto: 23/06/2008

Segnala al moderatore
Postato alle 19:04
Venerdì, 26/06/2009
Questo topic è stato chiuso dal moderatore

Codice sorgente - presumibilmente VB.NET

  1. For i As Integer = 1 To 9
  2.  
  3.             NewButton.Location = Poziozione_pulsante(i)
  4.             NewButton.Size = New Size(85, 59)
  5.             NewButton.Visible = True
  6.             NewButton.Text = "Prova" & i
  7.             Panel1.Controls.Add(NewButton)
  8.             AddHandler NewButton.Click, AddressOf NumeroTavoloPremuto
  9.             NewButton.Name = "Tavolo" & i
  10.         Next i



come mai alla fine del ciclo mi visualizza solo il numero 9? cosa sto sbagliando?

PM
Avatar
Jeremy (Normal User)
Pro


Messaggi: 134
Iscritto: 08/02/2009

Segnala al moderatore
Postato alle 19:29
Venerdì, 26/06/2009
Forse perchè dimentichi di posizionarli in punti diversi del Form ????? :pat:

Devi modificare l'assegnazione alla proprietà Location ... altrimenti vengono inseriti nel form uno sopra l'altro ... e tu ne vedi uno solo!!!


Facci sapere...
Ciao

Ultima modifica effettuata da Jeremy il 26/06/2009 alle 19:30
PM
Avatar
gianluca (Normal User)
Pro


Messaggi: 103
Iscritto: 23/06/2008

Segnala al moderatore
Postato alle 19:40
Venerdì, 26/06/2009
ah, scusa! mi ero dimenticato di scriverlo... nono ho la funzione "Poziozione_pulsante" ke appunto mi ritorna un "Point" e lo essegno appunto a "NewButton.Location = Poziozione_pulsante(i)"

Mi sa ke sia invece xke avendo "Dim NewButton As Button = New Button()" per tutti i pulsanti una vlt ke viene creato il nuovo pulsante mi elimina quello precedente! uffa! come faccio a risolvere il problema...

PM
Avatar
Jeremy (Normal User)
Pro


Messaggi: 134
Iscritto: 08/02/2009

Segnala al moderatore
Postato alle 19:48
Venerdì, 26/06/2009
Testo quotato

Mi sa ke sia invece xke avendo "Dim NewButton As Button = New Button()" per tutti i pulsanti una vlt ke viene creato il nuovo pulsante mi elimina quello precedente! uffa! come faccio a risolvere il problema...



No ... non è come pensi ...
Elimina la funzione "poziozione" (che razza di nome) e creane una tu in modo da avere una distanza tra i controlli di almeno 5 o 10 px.

Facci sapere...
Ciao

PM
Avatar
gianluca (Normal User)
Pro


Messaggi: 103
Iscritto: 23/06/2008

Segnala al moderatore
Postato alle 19:53
Venerdì, 26/06/2009
AHAHAHAH! oddio! non avevo letto come l'avevo scritto! era "Posizione_Pulsante"...

cmq la funzione è fatta cosi:
Codice sorgente - presumibilmente VB.NET

  1. Private Function Posizione_pulsante(ByVal Numero_tavolo As Integer)
  2.         Dim p As Point
  3.  
  4.         If Numero_tavolo = 1 Then
  5.             p = New Point(6, 6)
  6.         ElseIf Numero_tavolo = 2 Then
  7.             p = New Point(109, 6)
  8.         ElseIf Numero_tavolo = 3 Then
  9.             p = New Point(212, 6)
  10.         ElseIf Numero_tavolo = 4 Then
  11.             p = New Point(6, 90)
  12.         ElseIf Numero_tavolo = 5 Then
  13.             p = New Point(109, 90)
  14.         ElseIf Numero_tavolo = 6 Then
  15.             p = New Point(212, 90)
  16.         ElseIf Numero_tavolo = 7 Then
  17.             p = New Point(6, 174)
  18.         ElseIf Numero_tavolo = 8 Then
  19.             p = New Point(109, 174)
  20.         ElseIf Numero_tavolo = 9 Then
  21.             p = New Point(212, 174)
  22.         End If
  23.  
  24.         Return p
  25.  
  26.     End Function


Ultima modifica effettuata da gianluca il 26/06/2009 alle 19:54
PM
Avatar
Jeremy (Normal User)
Pro


Messaggi: 134
Iscritto: 08/02/2009

Segnala al moderatore
Postato alle 20:06
Venerdì, 26/06/2009
Ma la nuova istanza del button .. quando la crei???? :heehee:

A parte la funzione ... che potrebbe essere riscritta un pochino meglio ...
A parte il fatto che non hai tipizzato la funzione ...
A parte il fatto che te ne saresti accorto se avessi impostato Option Strict On ....

devi modificare il tuo codice in questo modo:

Codice sorgente - presumibilmente VB.NET

  1. For i As Integer = 1 To 9
  2.  
  3.             NewButton = New Button
  4.             NewButton.Location = Posizione_pulsante(i)
  5.             NewButton.Size = New Size(85, 59)
  6.             NewButton.Visible = True
  7.             NewButton.Text = "Prova" & i
  8.             Panel1.Controls.Add(NewButton)
  9.             AddHandler NewButton.Click, AddressOf NumeroTavoloPremuto
  10.             NewButton.Name = "Tavolo" & i
  11.         Next i



Facci sapere...
Ciao

PM
Avatar
gianluca (Normal User)
Pro


Messaggi: 103
Iscritto: 23/06/2008

Segnala al moderatore
Postato alle 20:40
Venerdì, 26/06/2009
FANTASTICOOOO! :D grazie 100000 Jeremy!
mi è bastato aggiungere all'inizio "NewButton = New Button" nel for!!! :)

Ps, cos'è Option Strict On??? e come faccio a tipicizzare la funzione?

Grazie ancora...

Gianluca



Ultima modifica effettuata da gianluca il 26/06/2009 alle 20:45
PM
Avatar
manvb.net (Member)
Guru


Messaggi: 663
Iscritto: 28/01/2008

Segnala al moderatore
Postato alle 21:26
Venerdì, 26/06/2009
Vai nelle proprietà del progetto e nella scheda compilazione trovi Option Strict. Prova ad impostarla su on e vedrai (per impostare Option Strict puoi anche scrivere Option Strict On all'inizio del file).

PM
Avatar
Jeremy (Normal User)
Pro


Messaggi: 134
Iscritto: 08/02/2009

Segnala al moderatore
Postato alle 21:30
Venerdì, 26/06/2009
Testo quotato

Postato originariamente da gianluca:

  tipicizzare  



Tipizzare :pat:


PM
Pagine: [ 1 2 ] Precedente | Prossimo