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

    [C#.Net] Accedere a Controlli/Metodi/Attributi di una classe padre

    Premetto che ho gia' letto le pillole e c'era qualche discussione che mi poteva venire incontro.. ebbene le ho lette !
    Sono alle prime armi con il suddetto linguaggio e devo dire che (sono ancora alla ricerca di un buon manuale :P) per chi come me ha una infarinatura di C/C++ e oop le cose sono di una facilita' allarmante Recita giusto il motto che ho letto "Facile Come Java, Potente Come C++".
    Cmq non ho aperto il topik per elogiare c#, veniamo al dunque...
    Mi trovo nella situazione di avere due form, diciamo form1 e form2; ora l'esecuzione segue su form1 fino a quando istanzio form2 e lo visualizzo in modalita' modale usando ShowDialog(). Ora il problema qual'e' ? E' che form2 mi serve tassativamente modale ma ho bisogno di modificare contemporaneamente controlli di form1 e di form2 e richiamare dei miei metodi da form1. Come letto su msdn il codice che segue new form2().ShowDialog() viene eseguito quando form2 viene chiuso.
    Nel mio caso reale ho sul form1 una textbox multiriga e su form2 una progressbar che deve incrementarmi di 1 ogni riga nuova che scrivo sul textbox, ora il testo lo prendo da file ma ho qualche problemino a gestire il tutto, inquanto la soluzione che mi era venuta in mente era fare un metodo statico che mi risolvesse il problema, ma non si puo' fare inquanto non posso usare il puntatore this in un metodo statico, poi ho pensato di passare un puntatore all'istanza di form1 usando ShowDialog(IWin32Window) ma non so come gestirlo, e passando cmq come parametro al costruttore di form2 non c'e' verso di accedere alle proprieta'/metodi/controlli che aggiungo al mio form.
    Premetto che inquanto ignorante e' un "progetto" puramente didattico per fare qualche esperimento
    okok scusate la lunghezza ma volevo spiegare bene (lo so che non ci sono riuscito :P)

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Non ci ho capito una mazza, personalmente.

    Non potresti spiegare semplicemente cosa vuoi ottenere in termini pratici e lasciare a noi la soluzione tecnica efficace?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    si scusami hai ragione :P
    allora io ho un textbox su form1, a un certo punto istanzio un secondo form (form2) che contiene una progressbar che deve incrementare ogni volta che aggiungo una riga di testo al texbox su form1. Il problema e' che benche' abbia dichiarato metodi adhoc pubblici in form1 non riesco ad accederci da form2 perche' form2 lo visualizzo con ShowDialog, quindi dovrei fare il riempimento da form2 del controllo textbox presente su form1.
    In sostanza si tratta di accedere da un secondo form ai controlli/metodi/proprieta' di un'altro form e viceversa. spero di essere stato piu' chiaro

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    La soluzione che hai proposto è inapplicabile: se la seconda finestra viene visualizzata come modale, l'utente non può accedere alla prima e aggiungere testo alla TextBox.

    :master:
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  5. #5
    si lo so che l'utente non puo', ma non posso farlo nemmeno io da codice ? cioe' non mi interessa niente che sia l'utente ad inserirci testo, sono io che lo devo fare, leggendo il testo da un file e ributtandolo formattato nel textbox

  6. #6
    alka non si puo' fare ?

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Puoi mostrare il codice che hai scritto in modo da esaminarlo facendo un copia-incolla ?

  8. #8
    anche tu non hai tutti i torti :P
    Ho allegato un rar che contiene un progetto praticamente inutile ma c'e' li dentro tutto il mio problema...
    Io ho risolto con questa soluzione (in realta' avevo gia' risolto..) ma la reputo una soluzione "sporca", ovvero per accedere al textbox1 di form1 ho optato per passare al costruttore di form2 un ref all'istanza di form1 e dichiarato il controllo internal o public. La mia domanda (espressa malissimo) intendeva chiedere piu' info sull'uso di un overload di Show() e ShowDialog() ovvero Show(IWin32Window) e ShowDialog(IWin32Window) che permettono di specificare il form proprietario. Gli esempi delle msdn non mi sono state di grande aiuto... Li ho provati passando come parametro this e non sapevo come andarlo a recuperare poi questo parametro fino a quando riguardando tutti gli attributi della classe form mi sono accorto di Owner che e' di tipo Form ed ingenuamente pensavo che finisse li dentro ma mi sono dovuto ricredere :°
    Quindi in realta' benche' questa soluzione al momento funziona vorrei chiedervi perche' per visualizzare i due dialog devo chiamare cmq Show() ? Application.DoEvents() sembra non fare effetto e questo mi e' ancora oscuro... Inoltre confido in vostre soluzione piu' pulite e scusatemi ancora per la mia poca chiarezza

    il rar l'ho uploadato su megaupload http://www.megaupload.com/?d=6ZOY62G4

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.