Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    VB.NET - Form Ereditati

    Buongiorno,
    ho realizzato ho form delle seguenti dimensioni 1200;800, senza bordi.
    Ho quindi creato un form che eredita quest'ultimo, il manuale dice che il client sarà delle stesse dimensioni del form, esclusi bordi e tile bar.

    Purtroppo il nuovo form, risulta essere 1239;587, ovvero le stesse dimensioni della finestra di progettazione di Visual studio e mi compare "ancorato" alla suddetta finestra.
    Non risulta possibile modificare le dimensioni neanche nel designer...modificando la finestra di progettazione le dimensioni del form la seguono.

    In fase di esecuzione, il form viene visualizzato correttamente, il problema esiste solo con la finestra di progettazione, essendo la form ancorata a quest'ultima le dimensioni si alterano e non riesco ad inserire controlli al di fuori delle aree visibili.


    A scanso di equivoci, ogni altro form viene visualizzato senza problemi, non è ancorato e posso scorrere le dimensioni tramite le scrollbar laterali (assenti nel form client, che è ancorato alla finestra di designer)...come si spiega questo effetto?


    Spero di essermi spiegato sufficientemente bene, grazie a tutti coloro che avranno la pazienza di darmi una risposta.
    Ultima modifica di lunarossa82; 04-06-2015 a 10:42

  2. #2
    Ma tu un form ereditato non lo devi assolutamente toccare nella finestra di progettazione... altrimenti che razza di form ereditato è??? La finestra di progettazione di un form ereditato non la devi proprio aprire.

    L' unico form che devi toccare a livello di finestra di progettazione è il form "padre"... gli ereditati avranno automaticamente stessa forma, stessi controlli, stesse disposizioni dei controlli e stessi colori del form "padre", ed anche lo stesso codice a meno che nelle singole finestre del codice non vari qualcosa appunto a livello di codice.
    Ultima modifica di eziogsv; 04-06-2015 a 14:30

  3. #3
    Quote Originariamente inviata da eziogsv Visualizza il messaggio
    Ma tu un form ereditato non lo devi assolutamente toccare nella finestra di progettazione... altrimenti che razza di form ereditato è??? La finestra di progettazione di un form ereditato non la devi proprio aprire.

    L' unico form che devi toccare a livello di finestra di progettazione è il form "padre"... gli ereditati avranno automaticamente stessa forma, stessi controlli, stesse disposizioni dei controlli e stessi colori del form "padre", ed anche lo stesso codice a meno che nelle singole finestre del codice non vari qualcosa appunto a livello di codice.
    In che senso? L'eredità prevede la possibilità di aggiungere moduli, attributi ed elementi di qualsiasi tipo alla classe padre.

    Se creo una classe FORM1, e voglio crea una classe FORM2 che la eredita, ed aggiungere a questa degli altri controlli, sto usando la normale ereditarietà :-)

    Il problema, è che se FORM2 non mi compare nelle sue dimensioni originali (quelle di FORM1), ma è semplicemente uno split della mia finestra di progettazione, io non riesco ad aggiungere i controlli in tutte le aree, ma solo in quelle che copre la visuale della mia finestra.

    Tentando di spiegarmi meglio, la FORM1 è 1200x800 (e così mi compare anche la FORM2 in fase di esecuzione), ma la mia finestra di progettazione è 1239x587.
    Io i controlli li aggiungo e funzionano senza problemi, nella piena regola dell'ereditarietà...

    Ma dato che la finestra di progettazione mi visualizza la FORM2 più piccola, e stretchata al suo interno, non mi consente di vedere i 200px in fondo alla form2, ed è lì che fatico ad aggiungere controlli...ovvero devo "disancorare" la finestra di VS2010, allargarla e solo a quel punto posso sfruttare gli tutti gli spazi...ma è da pazzi, qualcosa non mi torna...

  4. #4
    Mah, fatto sta che nel mio VB2010 se cerco di aprire la finestra di progettazione di un Form ereditato ottengo il messaggio di errore "Riferimento a un oggetto non impostato su un'istanza di oggetto" (che mi sembra anche ovvio), mentre la finestra del codice la apro e la modifico senza problemi.

    Mi chiedo poi a che serve creare un Form ereditato se poi lo vado a modificare al punto di aggiungere controlli invece di crearne semplicemente uno tutto nuovo... ma lì non conoscendo lo scopo del tuo programma ed il tuo codice non metto lingua più di tanto.

    Bye.

  5. #5
    Quote Originariamente inviata da eziogsv Visualizza il messaggio
    Mah, fatto sta che nel mio VB2010 se cerco di aprire la finestra di progettazione di un Form ereditato ottengo il messaggio di errore "Riferimento a un oggetto non impostato su un'istanza di oggetto" (che mi sembra anche ovvio), mentre la finestra del codice la apro e la modifico senza problemi.

    Mi chiedo poi a che serve creare un Form ereditato se poi lo vado a modificare al punto di aggiungere controlli invece di crearne semplicemente uno tutto nuovo... ma lì non conoscendo lo scopo del tuo programma ed il tuo codice non metto lingua più di tanto.

    Bye.
    Probabilmente andava ricompilato il form (se effettui modifiche sul form padre, per visualizzarle sul client, devi ricompilare).

    Sinceramente mi stupisce la domanda :-)
    Sull'ereditarietà...è un po' come realizzare i personaggi dei videogiochi, crei un modello con caratteristiche comuni, e personalizzi per ogni personaggio le successive (aggiungi armi, scudi, e così via...), senza creare infiniti personaggi.

    Alla stessa maniera, se desideri che tutte le form di un progetto abbiano ad esempio la stessa barra laterale, e facciano qualcosa ad al "LOAD"...è molto dispersivo copiare il codice su ogni form...erediti la form padre, ed aggiungi poi i controlli specifici sui figli.
    Probabilmente semplicemente non ti è mai capitata l'esigenza di usarle :-)

  6. #6
    Quote Originariamente inviata da lunarossa82 Visualizza il messaggio
    ... Probabilmente semplicemente non ti è mai capitata l'esigenza di usarle :-)
    PS Mate, un mio programmino da anni online, ha 29 form ereditati. Ps Hand Watcher, altro programmino on line da anni, di form ereditati ne ha 23. Ps Wins Viewer, tanto per cambiare, ne ha 18... parrebbe che un pochettino li abbia usati...

    Quote Originariamente inviata da lunarossa82 Visualizza il messaggio
    ... Probabilmente andava ricompilato il form (se effettui modifiche sul form padre, per visualizzarle sul client, devi ricompilare)
    Posso ricompilare tutte le volte che voglio, ma, almeno sul mio VS2010, non posso aprire in progettazione form ereditati: mi dà errore. Può magari essere un problema del mio VS, ma tutto sommato non ho mai avuto l' esigenza di modificare l' "estetica" dei miei form ereditati, ma solo il codice.

    Ciao!

  7. #7
    Quote Originariamente inviata da lunarossa82 Visualizza il messaggio
    ...è un po' come realizzare i personaggi dei videogiochi, crei un modello con caratteristiche comuni, e personalizzi per ogni personaggio le successive (aggiungi armi, scudi, e così via...), senza creare infiniti personaggi....
    Non potendo sul mio VS aprire in progettazione form ereditati... la risolverei semplicemente inserendo nelle risorse tutte le immagini che mi servono (armi, scudi ecc.), nel form padre le picturebox ed i controlli aggiuntivi che possano servirmi.... rendendo poi visibili da codice quelli che via via mi convengono nei vari form ereditati, così come le immagini che mi aggradano nelle picturebox. Tutto sommato... tutte le strade portano a Roma.
    Ultima modifica di eziogsv; 08-06-2015 a 15:21

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.