【问题标题】:pass event from UserControl to parent form将事件从 UserControl 传递到父窗体
【发布时间】:2021-08-01 23:02:35
【问题描述】:

我不知道如何在我的表单中注册用户控件内部发生的事件。 表单有 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 文件中调用事件,我请求反馈。

感谢任何帮助!!!!

【问题讨论】:

标签: c# winforms


【解决方案1】:

您是否将此行添加到您的表单中 UserControl1.SelectedStatusValueChanged += new EventHandler(ucNarudzba_SelectedStatusValueChanged);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    • 2014-06-03
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    相关资源
    最近更新 更多