ComboBox1 は非表示のパネル (panelSky) にあります
ComboBox1.Text = "323";
panelSky.Visible = true; // combo doesn't have text "323'
理由は何ですか?
パネルが表示されている場合、項目リストに「323」が含まれているかどうかに関係なく、comboText を「323」に変更できます。
私はあなたのシナリオで少しテストをしました。winforms
パネルとを使用して新しいアプリケーションを作成しましたcombobox
。フォームの読み込み時に、パネルの可視性をfalseに設定し、combobox
を"323"
に設定してから、パネルの可視性をtrueに設定しましたが、"323"
まだそこにありました。これは私がしたことです:
pnlSky.Visible = false;
comboBox1.Text = "323";
pnlSky.Visible = true;
combobox
が表示されていないときに値を設定するときに問題を引き起こしているマークアップまたはコードに何かがあるはずpanel
です。マークアップと、値を設定する前後に発生するコードを投稿できますcombobox
か?
別のから@HatSoft
の更新についてのあなたのコメントに基づいて、私は次のコードを実行しましたが、それでも非表示のコードを更新しましたcombobox
button
panel
combobox
private void button1_Click(object sender, EventArgs e)
{
combobox1.Text = "323";
pnlSky.Visible = true;
}
私の理解が正しければ、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";
}
}
おそらく、コンボ タイプ (つまり、DropDownStyle) は適切ではありません...
代わりに使用してみてCombo1.Items.Add("323")
、インデックスを 0 (最初の項目) に設定します。
Combo1.SelectedIndex = 0