+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Aprire un form MDI da un altro form MDI all'interno dello stesso MdiContainer

  1. #1
    Joe_01 non  in linea Scolaretto
    Post
    108
    Like Inviati  
    0
    Like Ricevuti  
    0
    Provo a spiegare il mio problema, in una form ho delle textbox e una datagridview.
    Metto dei valori nelle textbox e mi ritornano dei record nella datagridview.
    Io vorrei facendo un doppio click su un campo della gridview(non ha importanza quale poi lo scelgo) fare in modo che si apra una form con visualizzati tutti i dati di quel record.
    E' possibile questa operazione?
    Potete darmi qualche indicazione come fare?
    Grazie infinitamente a tutti
    Ultima modifica di elisab; 27-03-2011 04:53 

  2. #2
    Post
    1,608
    Blogs
    33
    Like Inviati  
    0
    Like Ricevuti  
    0
    Non so se il senso di quanto chiedi, ma :

    1. Se il DGV di sola lettura, come penso, andrebbe messo in modalit readonly.

    2. Al doppio Click ( ad esempio con evento CellDoubleClick() ), si va a recuperare un campo del DGV che funge da "id" univoco.

    3. Con l'id, poi, o popoli i controlli della nuova Form ( una specie di "Form Dettaglio", a quanto sembra ) direttamente prendendoli dalle celle della Row sotto selezione, oppure fai una nuova interrogazione a DB ( scelta pressoch obbligata nel caso in cui la "Form Dettaglio" debba contenere voci non incluse nella row )...
    ℹ️ Leggi di pi su MarcoGG ...

  3. #3
    L'avatar di elisab
    elisab non  in linea Scribacchino
    Post
    1,750
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao
    guarda questo esempio di bumm pensato per editare la riga in un secondo form.
    ℹ️ Leggi di pi su elisab ...

  4. #4
    Joe_01 non  in linea Scolaretto
    Post
    108
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ok, in linea generale la tua interpretazione corretta, andiamo per gradi:

    1 Se corretto quello che ho fatto ho semplicemente messo a true, ReadOnly nelle propriet della griglia

    2 L'evento CellDoubleClick l'ho implementato, ma ho dei problemi sull'apertura del form perch essendo una MIDI di una form padre, so che bisogna notificare alla form padre questa apertura ma non riesco a svilupparla (la vedremo successivamente)

    3 Per quanto riguarda la visualizzazione dei dati, se per visualizzazione intendi le colonne che ho eliminato dalla gridview semplicemente per questione di spazi (sono una 30'na di colonne) allora bisogna interrogare di nuovo il DB, purtroppo per ho bisogno di un aiuto a livello di codice per recuperare l'id della riga e visualizzare i dati completi nel form.

    Grazie per l'aiuto, sei sempre molto chiaro nelle spiegazioni e soprattutto disponibile ad aiutare.
    Grazie davvero.

  5. #5
    Post
    1,608
    Blogs
    33
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da Joe_01 Visualizza il messaggio
    2 L'evento CellDoubleClick l'ho implementato, ma ho dei problemi sull'apertura del form perch essendo una MIDI di una form padre, so che bisogna notificare alla form padre questa apertura ma non riesco a svilupparla (la vedremo successivamente)

    3 Per quanto riguarda la visualizzazione dei dati, se per visualizzazione intendi le colonne che ho eliminato dalla gridview semplicemente per questione di spazi (sono una 30'na di colonne) allora bisogna interrogare di nuovo il DB, purtroppo per ho bisogno di un aiuto a livello di codice per recuperare l'id della riga e visualizzare i dati completi nel form.
    2. Spiegati un po' meglio : la Form con il DGV una Child di una MDI. Quindi quella che aprirai, quando la istanzi, la setti come child della stessa MDI...

    3. l'ID il campo del DGV che identifica in modo univoco una Row. Il tuo sistema di TextBox serve a restituire dal DB le macchine che soddisfano certi criteri, se non sbaglio.
    Ora, ogni Row del DGV una macchina, e se non ho capito male, nel DGV non vuoi riportare tutte le caratteristiche complete, ma lasciare che l'utente possa farlo su Form Dettaglio.
    Bene, a questo punto la Tabella "macchine" avr un ID ( PK ), no ?
    Questo ID te lo porti come prima colonna anche sul DGV ( Column a indice 0 ) : sul doppio Click - che pu avvenire su una qualsiasi cella della Row, tu non fai altro che prendere il valore della cella 0 di quella Row, che poi passi ad una semplice SELECT * su tabella macchine...

    ℹ️ Leggi di pi su MarcoGG ...

  6. #6
    nokia6 non  in linea Novello
    Post
    9
    Like Inviati  
    0
    Like Ricevuti  
    0
    sarebbe meglio postare un po di codice ??????

  7. #7
    Joe_01 non  in linea Scolaretto
    Post
    108
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ho capito MarcoGG che tu hai una Lamborghini Diablo per programmare io una 500 vecchi modello, andiamo per gradi

    Ho una form padre con una sorta di menu a pulsanti sulla sinistra che mi aprono altrettante form midi.
    Una di queste ha la gridview (ed una form midi) cliccando sulla cella della griglia mi deve aprire sempre una form midi, certo non all'interno della precedente form midi ma all'interno della form padre.

    Io ho sviluppato questo codice, ma non va un c........

    
    Form MIDI (nome frmOfferta)
     
    PrivateSub dgvMacchinario_CellDoubleClick(ByVal sender AsObject, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvMacchinario.CellDoubleClick
     
    If e.ColumnIndex = 3 Then
     
                frmpAvvio.Apri_frmMacchine()
     
                frmMacchine.Show()    
    EndIf
    
    EndSub
     
     
    
    
    Form PADRE (nome frmpAvvio)
     
    
        
    PrivateSub btnMacchine_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMacchine.Click
     
            Apri_frmMacchine()
        
    EndSub
     
        
    PublicSub Apri_frmMacchine()
            
    Dim SingIstForm AsNew frmMacchine
     
            SingIstForm = frmMacchine.Istanza
     
            SingIstForm.MdiParent = 
    Me
            
    AddHandler SingIstForm.FormClosed, AddressOf frmSecondaria_Closed
     
            SingIstForm.Show()
     
            btnMacchine.BackColor = Color.PaleGreen
        
    EndSub
    

    poi ragioniamo anche per la SELECT
    Ultima modifica di Joe_01; 24-03-2011 21:41 

  8. #8
    L'avatar di gibra
    gibra non  in linea Very Important Person
    Post
    6,235
    Like Inviati  
    20
    Like Ricevuti  
    11

  9. #9
    L'avatar di Cteniza
    Cteniza non  in linea Amanuense
    Post
    4,378
    Blogs
    36
    Like Inviati  
    0
    Like Ricevuti  
    0
    Di solito (nokia6) chi chiede aiuto a postare del codice se ha dei problemi.
    ℹ️ Leggi di pi su Cteniza ...

  10. #10
    Post
    1,608
    Blogs
    33
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da Joe_01 Visualizza il messaggio
    Ho capito MarcoGG che tu hai una Lamborghini Diablo per programmare io una 500 vecchi modello, andiamo per gradi

    Ho una form padre con una sorta di menu a pulsanti sulla sinistra che mi aprono altrettante form midi.
    Una di queste ha la gridview (ed una form midi) cliccando sulla cella della griglia mi deve aprire sempre una form midi, certo non all'interno della precedente form midi ma all'interno della form padre.
    ...
    La Diablo costa troppo, e sinceramente non mi piace. Mi accontento di un Maserati GranTurismo S.

    Io non capisco la logica di quello che stai facendo.

    1. Anzitutto ( adesso creo un articolo apposta ) : evita il codice colorato. Ragazzi, BASTA postare codice colorato : un vero schifo.

    2. La Form di avvio dell'applicazione deve essere MDI ( e non "midi" ). Per fare questo basta andare sulle propriet a design e impostare ( come avrai gi fatto ) IsMdiContainer = True.

    3. Chiamiamo FormMain la MDI principale, che anche Form di avvio del progetto.
    Ora, da FormMain tu apri "FormDGV" ( Form che contiene DGV ).
    Quello che non capisco : che bisogno hai di rendere MDI anche FormDGV ?!
    --> FormDGV pu essere tranquillamente una Form standard, e inoltre, quando fai doppio Click su DGV, apri una Form Dettaglio usando ShowDialog()...
    Che senso ha aprire la FormDettaglio da FormDGV e renderla Child di FormMain ?

    4. In ogni caso, a parte il codice che hai postato, possibile impostare la MdiParent di una Form allo stesso livello della Form chiamante, senza fare riferimento diretto all'istanza della MDI stessa, con :
            Dim frm2 As New Form2
            frm2.MdiParent = Me.MdiParent
    
    dove "Me" in questo caso "Form1", che a sua volta Child di una MDI.
    ℹ️ Leggi di pi su MarcoGG ...

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. Risposte: 4
    Ultimo Post: 24-12-2019, 11:13
  2. utilizzare il tasto invio su pi button dello stesso form
    Da franco60 nel forum Visual Basic .Net
    Risposte: 0
    Ultimo Post: 10-03-2017, 19:14
  3. Risposte: 5
    Ultimo Post: 24-07-2014, 23:42
  4. aprire un form dentro un altro form
    Da giopas79 nel forum Visual Basic .Net
    Risposte: 13
    Ultimo Post: 14-05-2009, 17:25
  5. Risposte: 3
    Ultimo Post: 29-07-2008, 10:38