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
Visibilita' oggetti e funzioni
martedì 24 febbraio 2004 - 19.26
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Anonimo
Profilo
| Senior Member
392
messaggi | Data Invio:
mar 24 feb 2004 - 19:26
Ciao a tutti
ho un problema inerente alla visibilita':
possiedo due form una con una textbox e un altra con una listbox, quando clicco sulla listbox eseguo un certo tipo di operazione e vado a scrivere un risultato sulla textbox,
la funzione che scrive sulla textbox e' la seguente
public static void add_chord(char[] chord)
//char[] chord e' un array che mi ritorna dall'altra form
{
line1.Text = line1.Text + chord[0];
.........
}
il problema nasce dal fatto che non mi vede la textbox generando mi il seguente errore
'HelloTab.Form1.line1' indica 'campo' dove era previsto 'classe'.
Ho provato a rendere public static la textbox eliminando anche tutti i this inerenti ad essa, funziona ma quando inserisco un nuovo oggetto sulla form l'ide mi corregge il codice riportandomelo come prima....
Come posso fare
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 24 feb 2004 - 22:39
Allega se puoi il progetto completo, magari elimina il codice sensibile.
Faccio un po' fatica a seguirti così. Ho capito forse di cosa si tratta ma dovrei ricostruirmi da zero il tuo ambiente per farti vedere la soluzione.
ciao
david
Anonimo
Profilo
| Senior Member
392
messaggi | Data Invio:
mer 25 feb 2004 - 18:01
ecco a voi il codice....
nulla di top secret... sto cercando di creare un programma "amatoriale" per fare le tabulature per la chitarra o basso.... se vedete del codice strano e' di prova....
la form frmChordLibrary e' quella dalla quale devo chiamare la funzione sull'altra form.
line1 line2 .... line6 sono le mie text box che devo riempire con un singolo carattere alla volta passato da un array di char...
BYez
Anonimo
Profilo
| Senior Member
392
messaggi | Data Invio:
mer 25 feb 2004 - 18:13
il codice incriminato lo richiamo da un'altra form.
Anonimo
Profilo
| Senior Member
392
messaggi | Data Invio:
mer 25 feb 2004 - 18:24
Che idiota non funziona anche perche' e' static, è un metodo di classe e non di istanza. Non posso accedere da esso ad un campo non static come la textBox.
Ricapitolando ho due form
la prima con la funzione
public void add_chord(char[] chord){
txtLine1. text = txtLine1.text + chord[0]l;
//.........//
}
la seconda che richiama la fuzione add_chord dalla prima
private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
char[] pippo = {'0','1','2','2','x','x'}; //esempio
Form1.add_chord(pippo); //addchord non viene visto
}
devo dire pero' che form1 e' il nome della classe e non dell'istanza
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mer 25 feb 2004 - 22:53
Non puoi richiamare quella funzione semplicemente perchè Form1 non è un oggetto quindi non è un'istanza di una classe.
Per poter vedere il metodo add_chord devi creare un'istanza dell'oggetto in questo modo:
Form1 k=new Form1();
k.add_chord(pippo);
così la vedi, solo che l'istanza k è un'istanza nuova e non è quella della Form che già hai visualizzato.
Come ti dicevo precedentemente, modifica il costruttore della seconda Form (frmChordLibrary) e fai in modo che ci sia un costruttore che accetta un parametro di tipo Form1 che immagazzinerai in una variabile private. In questo modo una volta dentro frmChordLibrary avrai accesso alla tua variabile che conterrà in pratica il riferimento o puntatore alla Form chiamante e da lì allora avrai accesso diretto a tutti i metodi e le funzioni quindi anche add_chord :) penso di essere stato chiaro.
fai sapere.
ciao
david
Anonimo
Profilo
| Senior Member
392
messaggi | Data Invio:
gio 26 feb 2004 - 11:09
Se ho ben capito quando carico frmChordLibrary devo passargli il nome dell'istanza di form1 giusto? ma come faccio a sapere il nome dell'istanza di form1?
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 !