2016-06-30 15 views
0

Gibt es ein Ereignis für ein UserControl, das nur beim ersten Hinzufügen zu einem Formular ausgelöst wird? Ich möchte im Grunde ein Memo zeigen, wie man das Steuerelement für den Benutzer verwendet, sobald sie das Steuerelement in das Formular einfügen, aber nie danach anzeigen (bis sie eine weitere Instanz dieses Steuerelements hinzufügen).OnAddedToForm Designer-Ereignis für UserControl?

Verwenden Sie das Ereignis ParentChanged von Control: Control.ParentChanged Event

UserControl ist eine Erbschaft von Control

In Ihrem UserControl, könnten Sie ein privates Feld verwenden, um

+0

Wie ein Memo aussehen sollte und angezeigt werden? Ich denke, Sie können benutzerdefinierten Designer für ein Benutzersteuerelement erstellen (https://msdn.microsoft.com/en-us/library/35ea88wb(v=vs.110).aspx) und dort Memo hinzufügen. – ASh

+0

Eine einfache MessageBox wird tun. – cubrman

Antwort

0

Eine einfache Möglichkeit, dies zu tun könnte Definieren Sie, ob das Element bereits einem übergeordneten Objekt hinzugefügt wurde.

für Sie Dieser Code könnte funktionieren:

public class CustomUserControl : UserControl 
{ 
    private bool _firstTimeAdded = false; 

    private void Init() 
    { 
     this.ParentChanged += CustomUserControl_ParentChanged; 
    } 

    private void CustomUserControl_ParentChanged(object sender, EventArgs e) 
    { 
     if (Parent is Form && !_firstTimeAdded) 
     { 
      _firstTimeAdded = true; 
      // Show your memmo 
     } 
    } 
} 
+0

Nein, das funktioniert nicht - es wird jedes Mal ausgelöst, wenn Sie den Designer des Formulars erneut öffnen (das ist der Designer-Modus, für den ich ihn brauche). – cubrman