如何在C#中获取动态生成的控件的值?

时间:2017-11-04 02:55:25

标签: c#

我试图从单独的事件中获取动态组合框中的项目值。我需要将用户选择的值放入字符串中,但我无法找到方法。这是一个例子。

            ComboBox player1Role = new ComboBox();
        player1Role.Width = 100;
        player1Role.Items.Add("Top");
        player1Role.Items.Add("Jungle");
        player1Role.Items.Add("Mid");
        player1Role.Items.Add("Bot");
        player1Role.Items.Add("Support");
        player1Role.Items.Add("Fill");
        player1Role.Location = new Point(200, 200);

然后在下面的点击事件中,我需要获得他们选择的值:

        private void CreateParty_Click(object sender, EventArgs e)
    {

        ComboBox player1SelectedRole = (ComboBox)Controls["player1Role"];
        string player1roleString = player1SelectedRole.Items[0].ToString();
        MessageBox.Show(player1roleString);
    }

该代码只是给我一个例外,说明player1SelectedRole为空。我做错了什么?

1 个答案:

答案 0 :(得分:0)

您正在寻找控件的名称,但您没有为控件指定名称。

player1Role.Name = "player1Role";

另外,我认为player1SelectedRole.Items[0]始终会选择第一项,而不管实际选择哪一项。请改为player1SelectedRole.SelectedItem