0

ComboBox1 は非表示のパネル (panelSky) にあります

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

理由は何ですか?
パネルが表示されている場合、項目リストに「323」が含まれているかどうかに関係なく、comboText を「323」に変更できます。

4

3 に答える 3

0

私はあなたのシナリオで少しテストをしました。winformsパネルとを使用して新しいアプリケーションを作成しましたcombobox。フォームの読み込み時に、パネルの可視性をfalseに設定し、combobox"323"に設定してから、パネルの可視性をtrueに設定しましたが、"323"まだそこにありました。これは私がしたことです:

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

comboboxが表示されていないときに値を設定するときに問題を引き起こしているマークアップまたはコードに何かがあるはずpanelです。マークアップと、値を設定する前後に発生するコードを投稿できますcomboboxか?

別のから@HatSoftの更新についてのあなたのコメントに基づいて、私は次のコードを実行しましたが、それでも非表示のコードを更新しましたcomboboxbuttonpanelcombobox

 private void button1_Click(object sender, EventArgs e)
 {
     combobox1.Text = "323";
     pnlSky.Visible = true;
 }
于 2012-06-29T14:21:59.957 に答える
0

私の理解が正しければ、Combox1 は Type Panel のコンテナに存在します。

したがって、以下のコードは私のトリックです

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

更新:シナリオに関する知識が増えた後

button1 は表示されている Panel1 にあり、comombox1 は表示されていない Panel2 にあります

    private void button1_Click(object sender, EventArgs e)
    {
        if (comboBox1.Parent.Visible)
        {
            comboBox1.Text = "323";
        }
    }
于 2012-06-29T14:08:24.487 に答える
0

おそらく、コンボ タイプ (つまり、DropDownStyle) は適切ではありません...

代わりに使用してみてCombo1.Items.Add("323")、インデックスを 0 (最初の項目) に設定します。

Combo1.SelectedIndex = 0 
于 2012-06-29T13:44:31.490 に答える