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
Sintassi vb.net
mercoledì 31 maggio 2006 - 12.53
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
FELIX NET
Profilo
| Newbie
28
messaggi | Data Invio:
mer 31 mag 2006 - 12:53
Ciao a tutti...
Da bravo programmatore VB6....sto' tentando di aggiornarmi a vb.net.
Avrei bisogno di qualche dritta...
1) Se da un form (form1) devo scrivere su di una textbox di un' altro form (form2) in VB6 facevo: Form2.Textbox.Text= " " (semplice e pulito)....in vb.net pero' non funziona!!!!!
2) Utilizzando una barra degli strumenti come posso recuperare l'index del pulsante che e' stato premuto?????
In VB6 facevo:
Private Sub bar_ButtonClick(ByVal Button As MSComCtlLib.Button)
Select Case Button.Key
Case "azione1"
Case "azione2
End Select
Exit Sub
Ma in VB.net?????
Grazie a tutti....
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
mer 31 mag 2006 - 13:44
Se posso fare una considerazione iniziale: se fai dei paragoni su come "facevi" su vb6 sei sulla cattiva strada per imparare vb.net la miglior cosa è affrontare vb.net come un nuovo (e lo è) linguaggio.
1)
Questo è possibile solo configurando tutte le proprie forms come shared e single instance (se mi posso permettere una vera porcheria).
Eventualmente analizza quali sono i dati da passare e fai una classe di interscambio tra forms (questa si shared) dove tu possa leggere e scrivere da qualsiasi punto.
2)
Per quella cosa lì puoi usare il tag presente nel bottone.
Esempio
Private Sub addRecordButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles addRecordButton.Click$
Dim myButton As Button = Ctype(sender,Button)
Dim myString As String = Ctype(myButton.Tag,String)
End Sub
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
mer 31 mag 2006 - 15:03
Per la tua prima domanda, ti consiglio di dare un'occhiata a questi due link. Penso possano chiarirti un po' le idee su come funzionano le cose in VB.Net:
http://forum.masterdrive.it/showthread.php?t=12459
http://forum.masterdrive.it/showthread.php?t=11130
Poni attenzione al fatto che il nome della istanza non è quello della form progettata. Potrebbe anche esserlo, ma può crearti problemi. In VB2005 hanno riavvicinato le cose a VB6, per certi versi, ma ti consiglio di imparare e mantenere l'approccio di VB.Net2003.
FELIX NET
Profilo
| Newbie
28
messaggi | Data Invio:
mer 31 mag 2006 - 17:58
Ho letto i link che mi hai suggerito....
Ti dico come ho proceduto....
1) creo un modulo e dichiaro l' istanza:
public frm as new form1
2) Creo il modulo che lavorera' con la textbox della form:
public sub azione()
frm.textbox1.text=" "
end sub
3) Richiamero' il modulo dal codice contenuto in form1:
nome_modulo.azione
Risultato: nessun errore ma effetti zero.....perche'
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
mer 31 mag 2006 - 18:27
Guarda che non è necessario che tu metta la procedura in un modulo. Devi poter 'vedere' la textbox, ed agire su di essa, anche direttamente dalla form dalla quale richiami la procedura contenuta nel modulo. Quello che mi lascia perplesso è che tu mi dici che richiami quella procedura dal codice contenuto in 'form1'.....chi è questa form1? Non è la classe dalla quale ottieni l'istanza frm? Mi sarei aspettato che tu richiamassi la procedura dalla form 'vattelapesca' e, ovviamente, l'azione sarà sulla textbo1 dell'istanza frm, che non ha nulla a che vedere con form1 se non il fatto che è stata ottenuta a sua 'immagine e somiglianza' (e con questa citazione religiosa iniziamo a programmare in un vago odore di santità!
). Credo di capire che il tuo progetto parta dalla form1 e che tu stia osservando quella form. Se la form della quale intendi raggiungere il controllo textbox, è la tua form di partenza (speravo fosse una seconda form), allora bisogna fare un passo in avanti. Innanzitutto devi cambiare, dalle proprietà del progetto, l'oggetto di partenza da 'Form1' a 'Sub Main'.
Poi, nel tuo modulo dovrai scrivere una cosa del genere:
Module Module1
Public Frm As New Form1
Public Sub Main()
Application.Run(Frm)
End Sub
End Module
In questo modo, alla partenza, verrà eseguita la sub main, che avvierà l'applicazione (Application.Run), legandola al destino della form 'frm', chiudendo la quale si chiuderà l'applicazione stessa. Lo stesso comando serve anche a rendere visibile la form 'frm' esattamente come se tu scrivessi frm.show
In questa situazione, la prima form effettivamente visibile, sarà l'istanza 'frm' e non 'Form1' e quindi l'esecuzione del comando frm.textbox1.text="", darà un risultato finalmente visibile!
Spero di essere stato chiaro. Fammi sapere.
FELIX NET
Profilo
| Newbie
28
messaggi | Data Invio:
mer 31 mag 2006 - 20:03
Tutto ok funziona.....
Solo una curiosita':
Questo di cui mi sono accupato e' soltanto una semplice soluzione di prova, per "avvicinamento" al vb.net....
La mia domanda e' la procedura che mi hai descritto mi permette di gestire in maniera simile anche form MDI....cioe' se dai vari form child ho necessita' di richiamare moduli esterni che intereagiscono con lo stesso form chiamante avrei difficolta...?
Grazie e scusa se approfitto esageratamente
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
mer 31 mag 2006 - 20:26
Ciò che dichiari pubblico nel modulo è visibile da tutta la tua applicazione e quindi non dovresti avere difficoltà neppure dalle form MDI....salvo errore, ma non credo proprio di sbagliare. Ciao.
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
mer 31 mag 2006 - 22:20
Secondo me potresti anche continuare a fare domande per una settimana senza avere risultati significativi.
La gestione degli oggetti di vb.net è completamente diversa da quella presente su vb6.
Il miglior consiglio che ti si può dare è di affrontare la migrazione con la sola certezza, vb.net è un nuovo linguaggio di programmazione che è necessario studiare.
Quando smetterai di fare paragoni con vb6 e quindi a considerarlo come "bagaglio acquisito" da applicare nel nuovo sarai nella condizione giusta per imparare a lavorare con vb.net.
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 !