将事件从 UserControl 传递到父窗体
pass event from UserControl to parent form
我不知道如何在我的表单中注册用户控件内部发生的事件。
表单有 3 个 FloatLayoutPanel
每个 FloatLayoutPanel 都有用户控件列表。
每个 UserControl 都有 ComboBox
我希望能够在 ComboBox onvaluechanged 事件上的 FloatLayoutPanels 之间移动 UserControls。
为了做到这一点,我需要在主窗体中注册来自 UserControl ComboBox 的事件
这是我的 UserControl 构造函数:
public event EventHandler SelectedStatusValueChanged;
public ucNarudzba()
{
InitializeComponent();
this.cmbPromjenaStanja.SelectedValueChanged += new System.EventHandler(this.cmbPromjenaStanja_SelectedValueChanged);
}
这是我的组合框 SelectedValueChanged 事件
private void cmbPromjenaStanja_SelectedValueChanged(object sender, EventArgs e)
{
if (SelectedStatusValueChanged != null)
SelectedStatusValueChanged(sender, e);
}
然后在我的表单中我应该访问这样的事件
(不确定这是否正确)
private void ucNarudzba_SelectedStatusValueChanged(object sender, EventArgs e)
{
// Do what I want
}
如果它是正确的,我不知道如何在调用此事件的表单 designer.cs 文件中编写代码!
因此,如果这种从用户控件获取事件数据到表单的方法是否可行,并帮助从表单的 designer.cs 文件调用事件,我希望得到反馈。
感谢任何帮助!!!!
你有没有把这行添加到你的表单中
UserControl1.SelectedStatusValueChanged += new EventHandler(ucNarudzba_SelectedStatusValueChanged);
我不知道如何在我的表单中注册用户控件内部发生的事件。 表单有 3 个 FloatLayoutPanel 每个 FloatLayoutPanel 都有用户控件列表。 每个 UserControl 都有 ComboBox 我希望能够在 ComboBox onvaluechanged 事件上的 FloatLayoutPanels 之间移动 UserControls。 为了做到这一点,我需要在主窗体中注册来自 UserControl ComboBox 的事件
这是我的 UserControl 构造函数:
public event EventHandler SelectedStatusValueChanged;
public ucNarudzba()
{
InitializeComponent();
this.cmbPromjenaStanja.SelectedValueChanged += new System.EventHandler(this.cmbPromjenaStanja_SelectedValueChanged);
}
这是我的组合框 SelectedValueChanged 事件
private void cmbPromjenaStanja_SelectedValueChanged(object sender, EventArgs e)
{
if (SelectedStatusValueChanged != null)
SelectedStatusValueChanged(sender, e);
}
然后在我的表单中我应该访问这样的事件 (不确定这是否正确)
private void ucNarudzba_SelectedStatusValueChanged(object sender, EventArgs e)
{
// Do what I want
}
如果它是正确的,我不知道如何在调用此事件的表单 designer.cs 文件中编写代码!
因此,如果这种从用户控件获取事件数据到表单的方法是否可行,并帮助从表单的 designer.cs 文件调用事件,我希望得到反馈。
感谢任何帮助!!!!
你有没有把这行添加到你的表单中
UserControl1.SelectedStatusValueChanged += new EventHandler(ucNarudzba_SelectedStatusValueChanged);