我在处理事件和/或委托时遇到了问题。我看到了非常相似的问题,但我仍然不清楚真正的实现。因此,请在您回答时更具体一些,以便我可以尝试并最终通过我知道的代码来了解公共/自定义事件的创建/处理究竟是如何工作的。
我所拥有的是一个User Control简单的文本框和一个按钮,我需要使用文本框中的值更改数据库中的记录。我将这个控件用于许多表单,所以我需要知道我正在使用哪个实体,并且能够调用它自己的保存方法。click如果我可以使用我的按钮事件User Control然后调用Save()当前表单的方法,那么做这一切会更容易。
这是我的用户控制:
namespace UserControls.CommonControls
{
    public delegate void ClickMe(string message);
    public partial class ChangeCode : UserControl
    {
        public event ClickMe CustomControlClickMe;
        public ChangeCode()
        {
            InitializeComponent();
        }
        private void btnChange_Click(object sender, EventArgs e)
        {
            if (CustomControlClickMe != null)
                CustomControlClickMe("Hello");
           //ToDo fill
            //MessageBox.Show("To Do: Write the busieness logic.");
        }
        public void SetTextBoxMask(MaskedTextBox txtBox)
        {
            txtChange.Mask = txtBox.Mask;
        }
    }
}
我在最后一次尝试实现我需要的东西时发布了它。
这是需要使用来自更具体的Click事件的形式之一,因为如果我理解正确,那么就有我必须订阅事件的地方:User ControlConstructor
public MaterialEdit()
        {
            InitializeComponent();
            UserControls.CommonControls.ChangeCode. += new ClickMe(button2_Click);
        }
UserControls.CommonControls.ChangeCode- 这就是我到达我User Control的名字的方式ChangeCode。