如何在隐藏面板上更改ComboBox.Text?

时间:2012-06-29 13:38:31

标签: c# winforms combobox

ComboBox1位于隐藏面板(panelSky)

ComboBox1.Text = "323";
panelSky.Visible = true; // combo doesn't have text "323'

请问是什么原因? 如果面板可见,我可以将comboText更改为“323”,无论“323”是否在项目列表中。

3 个答案:

答案 0 :(得分:0)

也许Combo Type(即DropDownStyle)不合适......

尝试改为使用Combo1.Items.Add("323"),然后将索引设置为0(第一项)

Combo1.SelectedIndex = 0 

答案 1 :(得分:0)

如果我理解正确,Combox1会存在于Type Panel的容器中

所以下面的代码我的诀窍

        if (comboBox1.Parent.Visible)
        {
            comboBox1.Text = "323";
        }

更新:了解有关您的方案的更多信息

button1位于可见的Panel1中,而combox1位于Panel2中,不可见

    private void button1_Click(object sender, EventArgs e)
    {
        if (comboBox1.Parent.Visible)
        {
            comboBox1.Text = "323";
        }
    }

答案 2 :(得分:0)

我对你的场景进行了一些测试。我创建了一个带有面板和winforms的新combobox应用程序。在表单加载上,我将面板的可见性设置为false,并将combobox设置为"323",然后将面板的可见性设置为true,"323"仍然存在。这就是我所做的:

pnlSky.Visible = false;
comboBox1.Text = "323";
pnlSky.Visible = true;

combobox不可见时,在设置panel值时,标记或代码中必定存在导致问题的内容。您可以发布标记以及在设置combobox的值之前和之后发生的代码吗?

根据您对@HatSoft关于在另一个combobox上更新button的{​​{1}}的评论,我运行了以下代码,但仍然更新了隐藏的panel }

combobox