>Ciao, spero sia il posto giusto....
Ciao! Speriamo di sì 
>
>Premesso che sono un novizio, ho un problema/dubbio.
>Ho creato un progetto
>
>Public Class Form1
>...
>end class
>
>ho quindi creato la parte grafica, per ora solo un bottone ed
>una webbrowser.
Quindi hai, nel tuo progetto, una Form che gestisce un bottone ed un web browser
>
>Alla fine ho creato il codice che mi serve, oviamente semplice,
>saltellando di funzione in funzione.
>
>Ora però mi accorgo che non è il massimo avere tutto mischiato,
>ho quindi aggiunto una classe.
>
>Public Class Funzioni
>...
>end class
>
>Ecco ora viene il difficile.
>
>Ho letteralmente spostato all'interno della classe una funzione,
>e l'ho impostata come shared, con relativo return del dato finale
>
>Shared Function pincopallino(ByVal username As String, ByVal
>password As String) As String
>...
>end function
>
>il problema è che poi nel codice del form principale non so come
>richimarla, ho provato, nel codice di click di un bottone
>
>Dim url As String = pincopallino(username, password)
>
>ma mi sottolinea pincopallino e mi informa che non è stato dichiarato...
>
>Ma non è una funzione pubblica?
sì, è pubblica.. ma il problema è che non definisci che classe espone quel metodo..
>
>Chi mi sa illuminare?
Facciamo un attimo il punto della situazione.. Tu parti dalla tua form e vuoi avere un repository centralizzato per alcune utili funzioni che probabilmente riutilizzerai all'interno del codice che andrai a scrivere.
L'idea di scegliere una funzione shared (satic in sintassi c#) è buona, visto che mi sembra di capire che a te serva avere un valore restituito da quella funzione, senza istanziare per forza l'oggetto che contiene il metodo (la tua funzione in filosofia a oggetti è un metodo, e ancora più in generale, un membro della classe). Quindi preso per buono che la scelta di fare un metodo statico sia valida, puoi semplicemente accedere alla funzione utilizzando la sintassi NomeClasse.NomeFunzione(parametri).. E' statico proprio perchè non serve l'istanza della classe.. fa solo qualcosa, senza essere dinamico in base ai valori assunti dall'oggetto..
Esempio:
File FormProva.vb
Publc Class FormProva
' metodo che richiama la funzione shared
Public Sub BtnVisualizza_Click(ByVal Messaggio as String) Handles BtnVisualizza.Click
MsgBox(Funzioni.MessaggioMaiuscolo(Messaggio))
End Sub
End Class
File Funzioni.vb
Public Class Funzioni
' metodo shared
Public Function MessaggioMaiuscolo(ByVal Messaggio as String)
return Messaggio.ToUpper()
End Sub
End Class
Fai attenzione ai namespace.. perchè se la funzione si trova in un altro progetto, essa è accessibile passando solo prima tramite il nome del progetto. Ad ogni modo devi controllare che la tua classe Funzioni non sia sotto namespace particolari, come ad esempio:
File Funzioni.vb
Namespace Utili
Public Class Funzioni
' metodo shared
Public Function MessaggioMaiuscolo(ByVal Messaggio as String)
return Messaggio.ToUpper()
End Sub
End Class
End Namespace
in questo caso la funzione è accessibile con il percorso Utili.Funzioni.MessaggioMaiuscolo(Messaggio)..
Probabilmente nel tuo caso è sufficiente indicare il percorso semplice, Funzioni.TuaFunzione(parametri)..
>
>Grazie in anticipo
Di nulla! 
>
>Cry
>
Alx81 =)
http://blogs.dotnethell.it/suxstellino