2016-06-30 2 views
0

フォームに最初に追加されたときにのみ起動するUserControlのイベントはありますか?私は基本的にフォームにコントロールを追加した後、コントロールをユーザーに使用する方法についてのメモを表示したいが、その後は表示しない(このコントロールの別のインスタンスを追加するまで)。UserControlのOnAddedToFormデザイナーイベント?

+0

を表示する必要がありますどのように?私は、あなたはuserControl(https://msdn.microsoft.com/en-us/library/35ea88wb(v=vs.110).aspx)のカスタムデザイナーを作成し、メモをそこに追加することができると思います。 – ASh

+0

単純なMessageBoxが行います。 – cubrman

答えて

0

それを行う簡単な方法は次のようになります。

ControlからイベントParentChangedを使用してください:Control.ParentChanged Event

UserControlあなたUserControlControl

のヘリタンスで、あなたがするプライベートフィールドを使用することができますアイテムが既に親に追加されているかどうかを定義します。

このコードは、あなたのために働くことができます:メモが見えるとは

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

いいえ、それは動作しません - それはフォームのデザイナーを開くたびに起動します(これは私が必要とするデザイナーモードです)。 – cubrman