Newsgroup: it.comp.lang.visual-basic
Titolo: Creare  New TxtBox da codice

Scusate ma non ho ben capito come devo fare a creare un nuovo TxtBox da
codice su form Load.
Devo usare CreateObject oppure New ??
Anche leggendo MSDN non ho ben capito...
Grazie
Saluti a tutti
Sergio
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Sergio
Nessuna delle due... per aggiungere un controllo dinamicamente (che è più che
creare un'istanza di una classe) occorre usare il metodo Add dell'oggetto
Controls del form.
Inoltre, se devi ricevere eventi, sarà bene dichiarare l'oggetto textbox a
livello di modulo e con l'opzione WithEvents.
Private WithEvents txt  As TextBox
Private Sub Form_Load()
    Set txt = Controls.Add("VB.TextBox", "txt")
    txt.Visible = True
End Sub
Bye
Raf

 livello di modulo e con l'opzione WithEvents.
Molte grazie per la pronta e precisa risposta
Ciao


     Set txt = Controls.Add("VB.TextBox", "txt")
A questo punto si interrompe e segnala l'errore di Run-time 50132
NOME DI OGGETTO NON VALIDO
Come faccio ?
Saluti


 Sergio
Strano, il codice che ti ho suggerito l'ho provato personalmente e funziona...
Posta il segmento di codice con l'istruzione che dà errore.
Bye
Raf


Il codice che ho inserito è il seguente:
Private Sub Form_Load()
Set CnPrev = New ADODB.Connection ' crea connessione al DataBase
  CnPrev.CursorLocation = adUseServer
  CnPrev.Open "provider=microsoft.Jet.OLEDB.4.0;Data
Source=\Programmi\GestiPrev\Archivi\DatiPrevRCA.mdb;Jet OleDB:DataBase
Password=bb0770;"
Set RsPrev = New ADODB.Recordset 'crea recordset Tabella Preventivi
  RsPrev.CursorLocation = adUseClient
  RsPrev.Open "select * from Preventivi Order By id", CnPrev,
adOpenKeyset, adLockOptimistic, adCmdText
‘ creo nuovo oggetto lo posiziono sul form
Set TxtPremio = ("VB.TextBox", Txt)  QUESTA E' L'ISTRUZIONE CHE LO
BLOCCA
TxtPremio.Visible = True
TxtPremio.Top = 4000
TxtPremio.Left = 3480
TxtPremio.Height = 375
TxtPremio.Width = 1575
 
...........
.......... 
End Sub



Scusa per il ritardo con il quale rispondo ma durante l'orario di lavoro
non sempre riesco a collegarmi.
Questo è il codice:
Private Sub Form_Load()
Set CnPrev = New ADODB.Connection ' crea connessione al DataBase
  CnPrev.CursorLocation = adUseServer
  CnPrev.Open "provider=microsoft.Jet.OLEDB.4.0;Data
Source=\Programmi\GestiPrev\Archivi\DatiPrevRCA.mdb;Jet OleDB:DataBase
Password=bb0770;"
Set RsPrev = New ADODB.Recordset 'crea recordset Tabella Preventivi
  RsPrev.CursorLocation = adUseClient
  RsPrev.Open "select * from Preventivi Order By id", CnPrev,
adOpenKeyset, adLockOptimistic, adCmdText
‘ creo nuovo oggetto sul form e lo posiziono
Set TxtPremio = ("VB.TextBox", Txt)
  TxtPremio.Visible = True
  TxtPremio.Top = 4000
  TxtPremio.Left = 3480
  TxtPremio.Height = 375
  TxtPremio.Width = 1575
........(codice omesso)
End Sub


Mi scuso per avere fatto confusione con le precedenti mie risposte.
L'istruzione esatta è la seguente:
 
‘ creo nuovo oggetto sul form e lo posiziono
Set TxtPremio = controls.add("VB.TextBox", Txt)
TxtPremio.Visible = True
TxtPremio.Top = 4000
TxtPremio.Left = 3480
TxtPremio.Height = 375
TxtPremio.Width = 1575
 
........(codice omesso)
 
End Sub
Saluti e grazie
Sergio


 Set TxtPremio = controls.add("VB.TextBox", Txt)
Il secondo parametro del metodo Controls.Add è un nome (ossia una STRINGA) da
dare al controllo da aggiungere, e tu passi la variabile Txt anziché (come nel
mio esempio) la stringa "txt".
Bye
Raf

 mio esempio) la stringa "txt".
Praticamente se voglio chiamare il controllo da aggiungere "pippo"
sostituisco Txt con Pippo.
e quindi:
dim Pippo as string
 Set TxtPremio = controls.add("VB.TextBox", Pippo)
Forse però mi manca qualche conoscenza di base perchè non mi funziona.
Ho inoltre notato che l'oggetto controls non mi presenta alcuna
proprietà add come mai ?
Ciao


 Sergio
Bye
Raf

 eventualmente aggiungila tu a mano.
Option Explicit in effetti lo uso sempre.
Grazie per la pazienza dimostrata nei miei confronti, questa sera
provvederò a documentarmi su quanto da te consigliato poi procederò a
fare le opportune modifiche all'istruzione.
Saluti
