Fő Form értesítése gyermek Formból
2012-04-13T10:52:41+02:00
2012-04-13T10:52:41+02:00
2022-07-24T03:43:45+02:00
  • Mi az elfogadott és szép megoldás arra tekintve, hogy van egy WinFormom-on egy fő form (Form1). Azon van egy gomb. Amennyiszer lenyomom a gombot, annyi gyermek form keletkezik.

    Form process = new Form(); process.Show(); processes.Add(process);

    Azért lenne fontos az értesítés, mert a fő formon van egy változó:
    allowedProcessCount

    Ha a gyermek formjaink száma elérte ezt az értéket, akkor a gomb legyen disable.

    A formokat gyűjtöm egy listában
    processes.Add(process);

    Valamint ez után rögtön meg is nézem, hogy ha a lista számossága elérte azt az értéket:
    if (processes.Count == allowedProcessCount)

    akkor le is tiltom a gombot
    btnWriting.Enabled = false;

    Azonban,ha egy formot bezárunk, vagy a rajta lévő folyamatot lestoppoljuk egy gombbal. Utána engedje megint lenyomni a gombot. Arra gondoltam, hogy úgy volna a jó,ha a processes listából töröljük az elemet, de attól hogy lestoppoljuk attól még az ott van. A fő formon a CPU-t se akarok ezzel lefoglalni, hogy menjen végig mindig a listán, hogy melyik process állt már le és engedje újra lenyomni a gombot. Gondoltam arra, hogy létrehozok egy int típusú változót, amihez írok egy public kezelő metódust. Ha az egyik gyermek formon lenyomom a stop gombot vagy bezárom akkor azt a változót - nevezzük runningProcessCount-nak - csökkentjük ezzel. De ha bezárom a gyermek formot akkor arról még mindig értesíteni kellene a fő formot hogy őt már bezártuk, mert amikor a fő formot is bezárom, akkor végigszaladok a listán és leállítom mindegyik működését.

    Erre milyen elfogadott módszer létezik ?
    Mutasd a teljes hozzászólást!
Ez a téma lezárásra került a moderátor által. A lezárás oka: Konkr�t programoz�si k�rd�seidet l�gy sz�ves a tud�st�rban tedd fel!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd