动态创建组合框的 SelectedIndexChanged 事件

本文关键字:SelectedIndexChanged 事件 组合 创建 创建组 动态 | 更新日期: 2023-09-27 18:32:30

我正在设计一个Windows表单应用程序。在此应用程序中,用户从组合框中选择一个数字,然后根据数字,将创建一些动态控件(标签和组合框(。

我的问题是,我需要在这些动态创建的组合框的"selectedindexchanged"事件上编写一些代码。但是我不知道如何为动态组合框创建事件。

这是我的函数:

表格1.CS

public void getchildCntrl(Panel pnl,ComboBox cmbb)
        {
            for (int ix = pnl.Controls.Count - 1; ix >= 0; ix--)
                if (pnl.Controls[ix].Name.Substring(0, 5) == "Child") pnl.Controls[ix].Dispose();
            if (cmbb.SelectedIndex != 0)
            {
                Label[] childLabels = new Label[cmbb.SelectedIndex];
                ComboBox[] txtTeamNames = new ComboBox[cmbb.SelectedIndex];
                for (int i = 0; i < txtTeamNames.Length; i++)
                {
                    //label create
                    var lbl = new Label();
                    childLabels[i] = lbl;
                    lbl.Name = "ChildLb" + i.ToString();
                    lbl.Text = (i + 1).ToString() + ". Çocuk-Yaş :";
                    lbl.Width = 80;
                    lbl.Location = new Point(cmbb.Location.X - 85, cmbb.Location.Y + 7 + ((i + 1) * 28));
                    lbl.Visible = true;
                    pnl.Controls.Add(lbl);
                    //combobox create
                    var cmb = new ComboBox();
                    txtTeamNames[i] = cmb;
                    cmb.Name = "Child" + i.ToString();
                    cmb.Location = new Point(cmbb.Location.X, cmbb.Location.Y + 5 + ((i + 1) * 28));
                    cmb.Width = 40;
                    cmb.DropDownStyle = ComboBoxStyle.DropDownList;
                    cmb.DataSource = ages.ToArray();
                    cmb.Visible = true;
                    pnl.Controls.Add(cmb);
                }
            }
        }

动态创建组合框的 SelectedIndexChanged 事件

您只需注册以下活动...

cmb.SelectedIndexChanged += new System.EventHandler((object o, EventArgs e) => 
{
    //Do something here
});

cmb.SelectedIndexChanged += new System.EventHandler(cmb_SelectedValueChanged);
private void cmb_SelectedValueChanged(object sender, EventArgs e)
{
    //Do something here.
}

您可以像这样将事件处理程序挂接到 ComboBox:

cmd.SelectionChanged += new SelectionChangedEventHandler(GuiController_SelectionChanged);
void GuiController_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
   throw new NotImplementedException();
}

以这种方式注册事件处理程序:

cmb.SelectedIndexChanged+=new EventHandler(cmb_SelectedIndexChanged);

以这种方式取消注册:

cmb.SelectedIndexChanged-=new EventHandler(cmb_SelectedIndexChanged);
private void cmb_SelectedIndexChanged(object sender, System.EventArgs e)
{
    //write your event code here
}

如何:在运行时为 Windows 窗体创建事件处理程序

public void getchildCntrl(Panel pnl,ComboBox cmbb)
    {
//// your code.....
                //combobox create
                var cmb = new ComboBox();
                cmb.SelectedIndexChanged+=new EventHandler(cmb_SelectedIndexChanged);
// remaining code
                cmb.Visible = true;
                pnl.Controls.Add(cmb);
            }
        }
    }

要指定参数 - 请通过:

组合框.选定索引更改事件

相关文章:
  • 没有找到相关文章