c#组件执行生命周期

时间:2016-01-14 23:51:55

标签: c# components lifecycle

我在我的解决方案中创建了一个组件。我可以在我的表单上使用此组件。 我做了这样的操作:

  1. 我创建了一个类库,创建了我的组件..
  2. 创建一个测试项目,并在我的测试项目组件中添加referances。
  3. 我有一些代码用于我的组件。我为此编写了一个函数,但我不知道我如何在我的组件中使用我的函数。我需要帮助。我想学习我的组件工作哪个项目?所以,我需要在我的表单上加载组件后调用我的函数。因为我需要学习这个表格的项目名称。 这是我的组件

    [System.ComponentModel.Description("This component using for update an application")] 
    public class MyComponent : System.Windows.Forms.Control
    {
        protected static string userName;
        protected static string userPassWord;
        ButtonState state = ButtonState.Normal;
    
    
    
        [System.ComponentModel.Description("UserName for DB Connection"), 
        System.ComponentModel.Category("UserPanel"),
        System.ComponentModel.DefaultValue(null)]
        public string UserName
        {
            get 
            { 
                return userName; 
            }
            set
            {
                userName = value;
            }
        }
        [System.ComponentModel.Description("Password for DB Connection"),
        System.ComponentModel.Category("UserPanel"),
        System.ComponentModel.DefaultValue(null)]
        public string UserPassWord
        {
            get
            {
                return userPassWord;
            }
            set
            {
                userPassWord = value;
            }
        }
    
        public MyComponent()
        {
            InitializeComponent();
    
        }
    
        private void InitializeComponent()
        {
            userName = "username";
            userPassWord = "pass";
        }
    
        protected override void OnPaint(PaintEventArgs e)
        {
            Draw(e.Graphics); 
            base.OnPaint(e);
        }
        protected virtual void Draw(Graphics g)
        {
            DrawButton(g);
        }
    
        protected virtual void DrawButton(Graphics g)
        {
            Rectangle rcButton = new Rectangle(0, 0, this.Width, this.Height);
            ControlPaint.DrawButton(g, rcButton, state );
        }
    
       public void MyFunction()
        { 
         // What my components do.
         string appname =System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;
        }
    

    我尝试使用此代码学习项目名称“System.Reflection.Assembly.GetExecutingAssembly()。GetName()。Name;”但它给了我“MyComponenet”。我想要它给我“TestProject” 现在我需要做什么?我想我需要一个像这样的功能

    protected override void afterComponenetsCreatedOnForm() 
        {
            base.afterComponenetsCreatedOnForm();
            MyFunction();
        }
    

0 个答案:

没有答案