Как реагировать на свойство Изменено пользовательского элемента управления winform во время разработки - PullRequest
1 голос
/ 03 декабря 2010

Я не могу найти anu doc ​​или учебник о том, как это сделать?

1 Ответ

0 голосов
/ 17 ноября 2011

Попробуйте - я добавил событие и запустил его в методе установки свойства.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace CustomControl
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        //add a handle to the property changed event
        myButton1.OnNameChanged += new EventHandler(myButton1_OnNameChanged);
    }

    void myButton1_OnNameChanged(object sender, EventArgs e)
    {
        MessageBox.Show("My Name Changed");
    }
}


public class myButton : Button
{
    private string _Name = "";
    public event EventHandler OnNameChanged;
    public string myName
    {
        get { return _Name; }
        set
        {
            _Name = value;
            if (OnNameChanged != null)
                OnNameChanged(this,EventArgs.Empty);

            //just for Demonstrative purposes I added this so you could see the _Name actually change
            this.Text = _Name;
        }
    }

    //added this to demonstrate the name changing 
    protected override void OnClick(EventArgs e)
    {
        base.OnClick(e);
        myName = "my New Name";
    }
}
}

РЕДАКТИРОВАТЬ: извините, если я неправильно прочитал вопрос.Я только заметил, что вы сказали во время разработки.Я думал, что вы хотите добавить событие, дважды щелкнув по нему в разделе свойств события.этот код учитывает это, хотя я не уверен, что вы это имели в виду.Пожалуйста, уточните, и, возможно, я все еще могу помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...