Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di kumm
    Registrato dal
    Jun 2000
    Messaggi
    190

    [VB.NET] user controls, pannelli o cos'altro??

    ciao ragazzi,

    sto facendo la mia prima applicazione Windows con VB.NET e ho un problema relativa al cambio di "pagine" (scusate il gergo web-style)

    ho il mio bel Form con un menu e cliccando i pulsanti del menu mi deve cambiare la parte centrale del Form (pensate ai siti web con i frame)

    ora... come si procede di solito nei Windows Form?

    1. devo creare pannelli e "giocare" con la proprietà VISIBLE?
    2. devo creare tanti user controls come "pagine"?
    3. devo utilizzare i form MDI?
    4. oppure?

    scusate la mia ignoranza, ma ho sempre lavorato per il web....

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Io ti suggerirei di utilizzare degli UserControl, eventualmente organizzati in una gerarchia di classi creandone uno da adottare come "base" e dal quale ereditare classi discendenti che implementano le pagine della tua applicazione in modo più specializzato.

    Nel form principale, dovresti implementare un metodo che, in base alla selezione effettuata con un menu, una struttura ad albero o altro ancora, provveda a caricare la classe della pagina specifica, cioè crei l'istanza della classe corrispondente alla pagina da visualizzare memorizzando il riferimento in un campo privato del form e assegnando le proprietà necessarie (es. parent, docking e altro) per ottenere la visualizzazione del controllo nel pannello o nel contenitore che hai deciso di utilizzare, sempre nel form principale, per contenere la pagina attuale.

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

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

  3. #3
    Utente di HTML.it L'avatar di kumm
    Registrato dal
    Jun 2000
    Messaggi
    190
    Salve alka,
    grazie per l'aiuto.

    Avevo già iniziato con questa strada, ma ho avuto alcuni problemini (sempre xké sono molto ignorante in materia...) ... ti spiego:

    Nel Form principale dove risiede il menu, ho creato un pannello e all'evento click delle varie voci di menu eseguo

    Dim formReportClienti As New reportClienti 'istanzio lo usercontrols
    pannello.Controls.Add(formReportClienti) 'lo visualizzo

    adesso il mio problema era come fare a passare valori da un usercontrol all'altro... mi spiego:

    un usercontrol è un report di clienti e cliccando la riga mi si deve sostituire con un altro usercontrols contentente una serie di textbox con i dati del cliente selezionato nel usercontrols precedente.... bene... non riesco a farlo!!!

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Credo che l'approccio degli UserControl sia utile unicamente alla costruzione di un'interfaccia utente "a pagine", in questo caso, mentre per l'esecuzione di una specie di "procedura guidata" all'interno di una singola pagina o la modifica di un particolare dato io predisporrei un controllo a schede oppure una form modale da visualizzare per modificare, ad esempio, i dati di un cliente e, alla chiusura - in base a conferma e annullamento - aggiornare i dati presenti nella pagina corrente.

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

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

  5. #5
    Utente di HTML.it L'avatar di kumm
    Registrato dal
    Jun 2000
    Messaggi
    190
    scusami Alka, ma non riesco a seguirti...
    Per "controllo a schede" ti riferisci al TABCONTROL?
    Form modale non ho idea cosa sia....

    la mia esigenza è la medesima:
    ho un menu con 3 pulsanti:
    - anagrafica clienti (ricerca -> report -> dettaglio)
    - anagrafica fornitori (idem)
    - anagrafica articoli (idem)

    la prima pagina sarà il form di ricerca; nella medesima rendo visibile una datagrid con i risultati; cliccando una riga del datagrid vado in un altra pagina piena di textbox per leggere o modificare o stampare i dati del dettaglio; alla fine torno alla pagina del datagrid ancora popolato.

    acetto consigli anke a costo di stravolgere il tutto.
    L'importante è ke abbia queste funzioni

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da kumm
    Per "controllo a schede" ti riferisci al TABCONTROL?
    Sì, ma con la "linguetta" delle schede invisibile per poter disporre i controlli su pagine differenti senza consentire un accesso diretto con il mouse.

    Originariamente inviato da kumm
    Form modale non ho idea cosa sia....
    Il form che si apre con ShowDialog e non consente ai form sottostanti di ricevere l'input fino a quando tale form non viene chiuso.

    Originariamente inviato da kumm
    la mia esigenza è la medesima:
    ho un menu con 3 pulsanti [...]
    acetto consigli anke a costo di stravolgere il tutto.
    L'importante è ke abbia queste funzioni
    Io farei una pagina che visualizza i record in anagrafica all'interno di una delle pagine di cui abbiamo parlato; con doppio clic o pressione di un pulsante apposito, si apre una finestra di dialogo (form) per modificare le proprietà che propone una conferma o un annullamento; alla chiusura, se sono state confermate le modifiche, si ricarica la griglia con i dati aggiornati. Per quanto riguarda la stampa, è sempre possibile inserire un pulsante sotto la griglia o nei dintorni e richiamare una nuova finestra di dialogo per configurare le opzioni di output alla stampante.

    Concludendo, non userei una pagina per ogni passaggio ma farei uso di form secondari, un po' come avviene ad esempio in Outlook quando, dalla pagina dei Contatti, si visualizzano i dati relativi ad un determinato elemento.

    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 kumm
    Registrato dal
    Jun 2000
    Messaggi
    190
    Caro Alka, la trovo una soluzione molto valida

    quindi potrei al doppio click sulla riga del datagrid farmi aprire un nuovo form con i dettagli (ke siano fornitori, clienti o prodotti è sempre lo stesso concetto) e gestire in questo Form l'eventuale modifica dei dati.

    Ma a questo punto dovrei inserire a ogni riga nel datagrid un pulsante per eliminare la riga...
    Si può fare?
    avevo letto da qualke parte ke si poteva creare una specie di Template per la riga....

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da kumm
    Ma a questo punto dovrei inserire a ogni riga nel datagrid un pulsante per eliminare la riga...
    Si può fare?
    Presumo di sì, ma non vedo una grande utilità, anzi...tieni conto che lo spazio è importante per poter vedere più informazioni possibili in colonna, soprattutto perchè non tutti viaggiano alle stesse risoluzioni video.

    Secondo me, è preferibile usare una barra degli strumenti con pulsanti come Nuovo, Modifica, Elimina e così via; nel caso di azioni che si rifanno ad un singolo elemento o a più elementi, vale la riga selezionata al momento della pressione del pulsante.

    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 kumm
    Registrato dal
    Jun 2000
    Messaggi
    190
    grazie mille per il tuo aiuto Alka, mi è stato prezioso!!!

    un ultima cosa... dove posso trovare informazioni sulla "stampa" con VB.NET?

    devo studiarmi come fare creare a questo software le fatture e stamparle... il problema potrebbe essere quando la fattura occupa + pagine, e l'intestazione, e sopratutto il "footer", deve essere automaticamente in ogni pagina da stampare....
    Sai dirmi dove recuperare informazioni?

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da kumm
    un ultima cosa... dove posso trovare informazioni sulla "stampa" con VB.NET? [...]
    Puoi creare un report usando tool di terze parti come Crystal Report, conosciuto anche se con i suoi problemi, oppure cercando un reporting tool alternativo (purtroppo, non ne conosco parecchi).

    La libreria base del framework fornisce il componente PrintDocument che, però, non è molto adatto a stampe complesse.

    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.