Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    138

    problema richiamo comando form da un altro form vb6

    salve a tutti.
    mi interassava sapere se esisteva una procedura per richiamare una funzione di un form, da un altro form.

    faccio subito un esempio

    ho un commandbutton nel form1 che fa aprire il form2.

    command1_click ()
    form2.show
    end sub


    ora nello stesso form (form1) creo un comando chè chiamerò command2
    ora applico a command2 la funzione di command1


    command2_click ()
    command1_click
    end sub


    fin qui tutto ok.
    non riesco a fare la stessa cosa da un form differente, perchè se dal command1 di form3 facessi una cosa del genere:

    command1_click() ----> di form3
    form1.command1_click
    end sub

    ho come output un messaggio di errore. come devo fare per evitarlo? grazie 1000

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    linguaggio nel titolo come da regolamento..

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    138
    hai ragione. scusami ho apportato le modifiche.
    mi son messo con cura a spiegare il mio problema che nel titolo ho saltato la parte piu importante. comunque il linguaggio è visual basic 6

  4. #4
    Ciao.

    La routine da richiamare da un altro form va' dichiarata Public
    IceCube_HT (VB6 fan Club)

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Quello che scrive icecube_HT è corretto: non puoi accedere ad una routine privata di un altro form. Altrimenti a che servirebbe dichiararla privata?

    Le routine di evento sono sempre private, infatti tu vedrai nel tuo codice:

    codice:
    Private Sub Command1()
        'codice...
    End Sub
    A questo punto puoi scegliere 2 strade.

    1) modifichi l'attributo della routine da Private a Public

    oppure, ed io lo preferisco,
    2) utilizzare l'apposita proprietà

    codice:
    Form1.Command1.Value = True
    che scatenerà il corrispondente evento Click, che è quello predefinito.


  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    138
    ho provato con la prima soluzione e funziona alla grande e già per questo volevo ringraziarti gibra, e ringraziare chiunque ha tentato di aiutarmi. però con la seconda (quella migliore per te) mi da errore. in

    form1.command1.value già di partenza quando seleziono tra le proprietà non visualizzo quella denominata "value" e quindi se lo forzo e la inserisco lo stesso, dopo avere avviato l'applicazione e aver premuto il comando, non riesce a compilare perchè non trova il metodo.

    da cosa potrebbe dipendere? graziee

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    760
    In effetti la proprietà Value non esiste per i CommandButton. Gibra probabilmente ha avuto un piccolo lapsus
    Ti suggerirei una terza via: se ciò che devi fare con il Command1 del Form1 e anche con il Command1 del Form3 è semplicemente far comparire il Form2, allora scrivi Form2.Show in entrambe le Sub Command1_Click; se invece devi fare qualcosa di più articolato scrivi una Sub pubblica che fa queste cose, mettila in un modulo .bas e richiamala da entrambe le Sub Command1_Click.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    138
    si.. alla fine ho risolto rendendo la funziona pubblica e tutto funziona alla perfezione. grazie a tutti comunque

  9. #9
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Grumpy
    In effetti la proprietà Value non esiste per i CommandButton. Gibra probabilmente ha avuto un piccolo lapsus
    Non è vero che la proprietà Value non esiste nel CommandButton, quindi nessun lapsus.
    So quello che dico.
    Che poi non sia presente nella casella delle proprietà, è un'altro discorso.

    Tale proprietà io la uso in abbondanza in tutte le mie applicazioni MDI, quando ad esempio voglio eseguire un comando in un form child indipendentemente dal tipo di child.
    Ad esempio, se io voglio stampare 'qualcosa' di un form child usando un pulsante Print dalla toolbar del form MID principale, faccio così:
    1. nel form child metto un pulsante cmdPrint
    2. per attivarlo con il pulsante della toolbar uso il seguente codice:
    codice:
    On Error Resume Next ' nel caso non esista un pulsante 'cmdPrint'
    ActiveForm.cmdPrint.Value = 1
    e parte dal stampa.


    Quindi il problema di antonyh.c è un'altro, probabilmente i nomi degli oggetti usati non corrispondono a quelli indicati.


  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    138
    MAI SFIDARE GIBRA!!!!!!!!!!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.