Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    17

    [VB.NET] Accesso ListView da form2 a form1

    Dal form2, alla pressione di un bottone, devo ripopolare un ListView nel form1.
    Come potrei fare?

    Confido in una vostra risposta!!!

  2. #2
    In VB6 si fa così:
    form1.listview.visible = false' per esempio
    per il NET dovrebbe essere lo stesso.
    Ciao, fammi sapere

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    17
    magari! Con .NET le cose sono un pochino diverse...maledettamente diverse!!!

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    17
    Ho trovato una soluzione, visto che potrebbe essere utile anche ad altri posto qui il codice

    Il problema era come ripopolare un listview del form1 alla pressione del bottone del form2

    Si possono usare gli eventi:

    Fuori da ogni blocco nel Form1
    codice:
    Dim WithEvents f2 As New Form2()
    Nel Form2
    codice:
    Public Class Form2
        Inherits System.Windows.Forms.Form
    
        '  Dichiariamo l'evento
        Event btn_click()
    Sempre nel Form2
    codice:
    Private Sub btnOK(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles btn_ok.Click
        ' Codice del bottone
        RaiseEvent btn_click()
    
    End Sub
    Attenzione: il nome dell'evento deve differire dal nome della sub
    Nel Form1
    codice:
    Private Sub f2_btnPress() Handles f2.btn_click
        'Codice della sub
    End Sub
    In pratica il form1 "ascolta" l'evento btn_click del form2 ed esegue la sub

    Sperando che possa aiutare qualcuno vi saluto!

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    La differenza sta nel fatto che VB.NET è orientato agli oggetti.

    Questo significa che ciascun form di cui disponi in realtà è una classe, che funge da "modello" comportamentale (attraverso i metodi) e le caratteristiche (proprietà).

    Quando vuoi utilizzare un form, devi crearne un'istanza usando l'operatore New.

    "Creare un'istanza" significa costruire di fatto un oggetto che rispecchia metodi e proprietà definite nella classe, in questo caso la classe del form.

    Tutti i componenti e i controlli che hai inserito nel form contribuiscono ad arricchire la suddetta classe, dotando il tuo form di nuovi elementi che la rendono diversa, anzi più specifica (per usare un termine consono).

    Detto questo, quando vuoi disporre di un form, sicuramente scriverai qualcosa del tipo:
    codice:
    Dim MyFormInstance As New MyFormClass
    Sostanzialmente, dichiari una variabile adatta a contenere un riferimento all'istanza della classe del form che arrivi a creare.

    Supponendo di eseguire questo codice, relativo al form secondario in cui è presente la ListView, alla pressione di un pulsante posizionato sul clic del primo form, e supponendo che il riferimento di cui sopra venga memorizzato in una variabile privata che fa parte della classe del form primario, potresti scrivere qualcosa del tipo:
    codice:
    ' ...
    SecondForm.MyListView.Items.Clear;
    ' ...
    In poche parole, il form primario che ha creato il secondario mantiene un riferimento a quest'ultimo oggetto; il form secondario contiene un controllo ListView che ha nome MyListView; quando si preme un pulsante sul form primario, si utilizza il riferimento SecondForm al form secondario concatenando il nome del controllo ListView e accedendo quindi alle proprietà di tale controllo.

    Purtroppo si tratta di concetti nuovi per chi è abituato a programmare con il classico VB (6 e precedenti), in cui ogni form ha un nome e con tale nome si identifica automaticamente classe e oggetto; ciascun form è già disponibile e non deve essere creato.

    Spero di aver chiarito un po' le idee, anche se la programmazione ad oggetti è un paradigma che deve essere assimilato per poter essere realmente compreso e non è facile spiegarlo in poco spazio su un forum.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    e se faccio dim frm2 as new frm2
    frm2.listview.................
    perche non funziona ????

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da cassano
    e se faccio dim frm2 as new frm2
    frm2.listview.................
    perche non funziona ????
    Hai inserito un controllo ListView sul form secondaria? Inoltre, non mi sembra un colpo di genio utilizzare per la variabile un nome uguale identico a quello della classe...non mi stupisce che non funzioni.

    Inoltre, il compilatore senz'altro non dice "non funziona" ma si esprime con un messaggio di errore ben dettagliato che, solitamente, permette di risalire con facilità all'errore.

    Specialmente con .NET, gli errori non sono mai stati così esplicativi e a volte includono anche la soluzione.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    be non e proprio cosi ma ora te la metto tutta

    dim frm2 as new form2
    frm2.textbox1.text="ciao"

    cosi non lo prende perche ???

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da cassano
    be non e proprio cosi ma ora te la metto tutta
    Se il codice che hai riportato qui non è uguale a quello che hai scritto nel tuo progetto, come faccio a trovare l'errore?

    Originariamente inviato da cassano
    dim frm2 as new form2
    frm2.textbox1.text="ciao"
    cosi non lo prende perche ???
    Sei sicuro di avere una TextBox1 sul secondo form, vero?

    In caso affermativo, qual è l'errore che ti restituisce?
    Non si può dire "non funziona" o "non lo prende", occorre riportare l'errore completo restituito dal compilatore!

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.