我在处理事件和/或委托时遇到了问题。我看到了非常相似的问题,但我仍然不清楚真正的实现。因此,请在您回答时更具体一些,以便我可以尝试并最终通过我知道的代码来了解公共/自定义事件的创建/处理究竟是如何工作的。
我所拥有的是一个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 Control
Constructor
public MaterialEdit()
{
InitializeComponent();
UserControls.CommonControls.ChangeCode. += new ClickMe(button2_Click);
}
UserControls.CommonControls.ChangeCode
- 这就是我到达我User Control
的名字的方式ChangeCode
。