Domanda

A un controllo WinForms, vorrei aggiungere un gestore dopo che il contenitore ha inizializzato il controllo (o meglio, dopo che il genitore ha inizializzato tutti i controlli contenuti).

Motivo: il controllo personalizzato ha un'opzione per attivare automaticamente un'azione. Dovrebbe inoltre attivarsi quando questa opzione è abilitata per la prima volta.

Tuttavia, a questo punto, altre proprietà (come i gestori di eventi) non sono ancora cablate correttamente e quindi l'effetto non è come previsto.

È possibile?

[modifica]

Capisco che questo suona "un po 'insolito", quindi voglio chiarire:

È destinato a questo componente : approssimativamente, aggiungendo un'opzione a " crea automaticamente un nuovo documento " ;.

Posso creare DocumentInfo stesso durante l'inizializzazione o quando la proprietà viene assegnata durante l'inizializzazione. Tuttavia, a questo punto dovrei anche attivare l'evento per dire (di solito il modulo principale) che deve aggiornare l'interfaccia utente. L'evento potrebbe non essere ancora stato cablato o altri controlli non sono ancora inizializzati, ecco perché mi piacerebbe ritardare l'evento fino a quando il modulo padre non è completamente inizializzato.

È stato utile?

Soluzione

L'unica cosa che so che farebbe questo, direttamente dall'interno del controllo, sarebbe quella di sovrascrivere OnVisibleChanged e gestire la tua azione la prima volta che viene mostrato il controllo.

Tuttavia, ripenserei alla necessità di questo. Questo farà sì che il tuo controllo si comporti in modo diverso dai controlli standard di Windows Form. Cercare di agganciare il tuo comportamento a un evento non standard mi sembra un incubo di manutenzione e usabilità ...

Altri suggerimenti

Hai provato a collegarti all'evento Load del form e a fare il lavoro lì? (nota che si attiva ogni volta che mostri il modulo ...)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top